Witam,
Mam pewną klasę. Kontener jaki wybrałem do przechowywania jej obiektów to wektor, bo w czasie działania programu ilość elementów będzie się często zmieniać. Problem jaki mam to jaką technikę wybrać by czas stworzenia/zainicjalizowania wektora po starcie programu był jak najszybszy?
Na razie mam tak:
vector<Gracz> gracze; gracze.push_back(Gracz(0,"Józef","Anielewski",lewy,Date(22,March,1993),12,13,18,8,5,4,4,16,6,18,20,15,18,brak));
...
//około 22 push_backów
W grze by było przy starcie około tysiąca push_backów. Moja klasa ma konstruktor zdefiniowany przeze mnie => stąd formuła Gracz(0,"Józef",....)
Myślałem by zrobić też tak:
vector<Gracz> gracze(22);
gracze.at(0) = Gracz(0,"Józef","Anielewski",lewy,Date(22,March,1993),12,13,18,8,5,4,4,16,6,18,20,15,18,brak);
ale tu wyciek pamięci będę miał bo powstaną 22 konstruktory domyślne Gracz() które potem nie zostaną zabite.
Najlepiej by było nie brać wektora tylko dać:
Gracz gracze[22] = { Gracz(0,"Józef","Anielewski",lewy,Date(22,March,1993),12,13,18,8,5,4,4,16,6,18,20,15,18,brak),
Gracz(1,"Adam","Anielewski",lewy,Date(22,March,1993),12,13,18,8,5,4,4,16,6,18,20,15,18,brak)
itd.itp. };
i czas tego jest szybszy niż wypełniania wektora.
Ale wektor ma dużo metod, które mi się potem przydadzą i stąd chciałbym mieć wektor. Ma ktoś jakiś pomysł?