Jak myślicie co jest lepsze wektor czy tablica ?
Ostatnio zmodyfikowano 2015-03-08 07:34
Gravity Temat założony przez niniejszego użytkownika |
Jak myślicie co jest lepsze wektor czy tablica ? » 2015-03-01 21:33:45 Witam, Uczę się c++ na bieżąco i właśnie poznałem wektory . Umiem już ich poprawnie używać i na myśl nasuneło mi się jedno pytanie . Co jest lepsze , szybsze wektor czy tablica ? Jak wiadomo wektor to dynamiczna tablica . Czy więc nie trzeba się martwić o usuwanie wektora z pamięci tak jak dynamiczną tablicę stworzoną za pomocą new ? Jak myślicie ? Pozatym sry ale nie ten dział. Prosze o przeniesienie. |
|
NopeDotAvi |
» 2015-03-01 21:43:25 Jeżeli nie używasz smart pointerów to nie ważne czego będziesz używał musisz się martwić o manualne usuwanie ich. |
|
Fireho |
» 2015-03-01 22:03:23 Nie trzeba się martwić o usuwanie z pamięci, bo std::vector sam w destruktorze używa operatora delete[] . Działają na tej samej zasadzie co tablice, więc są równie szybkie(może ew. wykonują jakieś dodatkowe operacje, ale to margines). Wektory to takie opakowane tablice, dzięki którym nie musisz się męczyć z wszelkimi niskopoziomowymi rzeczami typu ponowna alokacja/zwalnianie pamięci przy byle dodawaniu elementu, bo robi to za nas ściśle upakowana klasa. |
|
NopeDotAvi |
» 2015-03-01 22:17:13 @Fireho http://stackoverflow.com/questions/9448260/does-stdvector-call-the-destructor-of-pointers-to-objects |
|
Fireho |
» 2015-03-04 17:59:53 @NopeDatAvi Autorowi chodziło o usuwanie samej tablicy z pamięci, a nie usuwaniem obiektów, na które wskazują wskaźniki w tablicy. Usunie wskaźniki, ale obiektów nie. Autor nic nawet nie wspominał o wskaźnikach jako zawartości tablicy... |
|
DejaVu |
» 2015-03-04 19:10:42 Uczę się c++ na bieżąco i właśnie poznałem wektory . Umiem już ich poprawnie używać i na myśl nasuneło mi się jedno pytanie . Co jest lepsze , szybsze wektor czy tablica ? Jak wiadomo wektor to dynamiczna tablica. Czy więc nie trzeba się martwić o usuwanie wektora z pamięci tak jak dynamiczną tablicę stworzoną za pomocą new ? Jak myślicie ? Pozatym sry ale nie ten dział. Prosze o przeniesienie.
|
Prawidłowo użyty kontener std::vector będzie tak samo szybki jak tablica. Przyzwyczaj się do korzystania z std::vector. |
|
kynol |
» 2015-03-07 23:14:22 Albo do klasy array, ktora jest w nowym standardzie C++, czyli C++11, jest wydajniejsza od vectora, jedynym minusem array jest to ze jego wielkoscia nie moze byc zmienna tylko stala liczbowa :P Wiec jesli robisz tablice, ktora bedzie miala wyznaczona ilosc elementow to uzywaj klasy array |
|
DejaVu |
» 2015-03-08 07:34:35 Albo do klasy array, ktora jest w nowym standardzie C++, czyli C++11, jest wydajniejsza od vectora
|
Nie jest wydajniejsza. |
|
« 1 » |