Junior — Middle
Ce acțiuni sunt efectuate atunci când se adaugă un element nou într-un array dinamic de tip vector?
sobes.tech AI
Răspuns de la AI
Atunci când se adaugă un element nou într-un array dinamic de tip std::vector, se efectuează următoarele acțiuni:
- Se verifică dacă memoria alocată în prezent este suficientă pentru a găzdui noul element.
- Dacă există spațiu suficient, elementul este adăugat la sfârșitul array-ului.
- Dacă memoria nu este suficientă, se alocă un nou bloc de memorie de dimensiune mai mare (de obicei între 1,5 și 2 ori dimensiunea actuală).
- Elementele existente sunt copiate sau mutate în noul bloc de memorie.
- Blocul de memorie vechi este eliberat.
- Noul element este adăugat la sfârșit.
Exemplu:
std::vector<int> v = {1, 2, 3};
v.push_back(4); // adaugă elementul 4
Acest mecanism asigură o complexitate amortizată constantă pentru adăugarea elementelor, în ciuda eventualelor redistribuiri de memorie.