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

Jak myślicie co jest lepsze wektor czy tablica ?

Ostatnio zmodyfikowano 2015-03-08 07:34
Autor Wiadomość
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.
P-127521
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.
P-127525
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.
P-127531
NopeDotAvi
» 2015-03-01 22:17:13
@Fireho
http://stackoverflow.com/questions/9448260/does-stdvector-call-the-destructor-of-pointers-to-objects
P-127533
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...
P-127720
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.
P-127730
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
P-127929
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.
P-127934
« 1 »
  Strona 1 z 1