Sobes.tech
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:

  1. Se verifică dacă memoria alocată în prezent este suficientă pentru a găzdui noul element.
  2. Dacă există spațiu suficient, elementul este adăugat la sfârșitul array-ului.
  3. 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ă).
  4. Elementele existente sunt copiate sau mutate în noul bloc de memorie.
  5. Blocul de memorie vechi este eliberat.
  6. 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.