Dokładanie nowych elementów
Ostatnio zmodyfikowano 2016-03-29 11:47
Blonnik Temat założony przez niniejszego użytkownika |
Dokładanie nowych elementów » 2016-03-27 03:07:21 Cześć Tworzę sobie przy pomocy new tablicę o jakimś tam rozmiarze n. Ale powiedzmy, że chcę do niej potem dołożyć jeszcze 2 elementy. Jak to zrobić ? |
|
carlosmay |
» 2016-03-27 10:12:39 Alokujemy drugą odpowiednio większą tablicę. Kopiujemy wszystko do większej tablicy. Zwalniamy pamięć mniejszej. |
|
mokrowski |
» 2016-03-27 10:17:59 1. Jeśli robisz to new i nie wiesz/nie chcesz/nie możesz z niego zrezygnować to... pozostaje Ci następne new z tablicą o 2 elementy większe, kopiowanie danych ze starej do nowej i delete tejże starej tablicy. 2. Zamiast new, użyj malloc() dla tablicy a w czasie powiększania, realloc(). Plusem jest to że masz szansę na brak kopiowania jeśli jest jakaś pamięć na następne elementy za już alokowaną tablicą, minus to operowanie na poziomie "surowego C" z pomocą "rozpaczliwego void *" :-) 3. Zamiast tablicy użyj vector który w sposób czysty załatwia te i inne problemy z użyciem resize(), reserve() i innych metod na nim. Czyli "nie kop się z koniem człowieku" :-)
Co do wyboru, ja wybierał bym 3. Pierwsze 2 przypadki wyłącznie jeśli były by powody. |
|
carlosmay |
» 2016-03-27 11:22:01 Pierwsze 2 przypadki wyłącznie jeśli były by powody. |
Pewnie edukacyjne. Smacznego jajka. |
|
Blonnik Temat założony przez niniejszego użytkownika |
» 2016-03-29 11:47:33 Dzięki za wszystkie metody. Tak, potrzebuje tego w celach edukacyjnych. |
|
« 1 » |