Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dokładanie nowych elementów

Ostatnio zmodyfikowano 2016-03-29 11:47
Autor Wiadomość
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ć ?
P-146602
carlosmay
» 2016-03-27 10:12:39
Alokujemy drugą odpowiednio większą tablicę.
Kopiujemy wszystko do większej tablicy.
Zwalniamy pamięć mniejszej.
P-146604
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.
P-146605
carlosmay
» 2016-03-27 11:22:01
Pierwsze 2 przypadki wyłącznie jeśli były by powody.
Pewnie edukacyjne.

Smacznego jajka.
P-146608
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.
P-146704
« 1 »
  Strona 1 z 1