Wpis z mikrobloga

Treść przeznaczona dla osób powyżej 18 roku życia...
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine: Jeżeli lista jest typów prymitywnych to nie ma dużej korzyści, ale zazwyczaj są to listy jakichś obiektów. Wtedy w odpowiednim użyciu potężne narzędzie.
  • Odpowiedz
@Khaine: Może. Taka już specyfika listy. Do zalet pamięci ciągłej (vector) dodaj jeszcze cache-friendly. Lista to koszmar dla pamięci podręcznej CPU co dodatkowo spowalnia iterowanie po jej elementach w stosunku do vectora.
  • Odpowiedz
@SirSajko: Mi tylko chodzi o to, czy mam rację, że lista przechowująca np. chary z punktu widzenia pamięci jest jedną z najgłupszych rzeczy jakie można zrobić. To, że obiekty mogą być bardzo duże i przy nich te dodatkowe wskaźniki są pomijalnie małe to wiadomo sprawa.
  • Odpowiedz
@Khaine: jeśli chodzi o szybkość kodu, to bardzo dużo zależy od lokalności danych obecnie (dla x86 i nowych ARM-ów przynajmniej). Wydaje się więc, że std::vector będzie zawsze lepszą opcją, ale nie jest tak w praktyce. Często nie można sobie pozwolić na alokację dużego kawałku ciągłej pamięci, albo na trzymanie go z dala innych danych. Dlatego powstają klasy takie jak SmallVector.

Taka ciekawostka: backend kompilatora vistual c++ korzysta praktycznie wszędzie z
  • Odpowiedz
@Khaine: Lista jest do innych zastosowań i vector do innych. Czas się tego nauczyć, by wiedzieć po co jest i kiedy bardziej opłaci się używać jednego, a kiedy drugiego typu danych. I tyle. Są jeszcze inne typy do jeszcze innych celów, odkryjesz zapewne niedługo mapę, a może też listę tablic.... Czas się nauczyć, że w zależności od potrzeb używa się rożnych typów danych.
  • Odpowiedz
@Kaczus2B: Bardzo pomocny i duzo wnoszacy komentarz. A wiesz, ze widelec jest do innych zastosowan, a lyzka do innych. Czas sie tego nauczyc, by wiedziec po co jest i kiedy bardziej oplaci sie uzywac jednego, a kiedy drugiego?
  • Odpowiedz
@Khaine: Jezeli wiesz jak duzo chcesz dodac elementow to zawsze sie rezerwuje pamiec dla vektora i nie ma problemu z realokacja pamieci. Z reszta dramatu bez wstepnej rezerwacji (alokacji) pamieci tez nie ma.
  • Odpowiedz