Cześć. Przez jakiś czas męczę się ze zrozumieniem działania wektora. Problem leży w teorii.
W książce autor napisał że wektor zawiera 3 prywatne zmienne składowe:
class vector{
int sz; //size
double* elem; //wskaźnik na pierwszy element
int space; //tu mam problemy, ale z tego co zrozumiałem to jest to ilość miejsca którą wektor może zajmować bez relokacji.
public:
//...
};
W książce jest obrazek który wprowadza w duże zakłopotanie. Pokazuje on że zmienna space "wskazuje" na miejsce daleko za ostatnim elementem wektora( lub że space obejmuję znacznie większą ilość miejsca niż jeden rozmiar jednego elementu typu double.
No i teraz skoro wektor jest pewny że ma space-sz miejsca na przyszłe alokacje elementów, to co się stanie jeśli coś innego zaalokuje miejsce zaraz za wektorem? Nie ma żadnych funkcji sprawdzających, a jednak wszystko działa.