Junior — Middle
Welke acties worden uitgevoerd bij het toevoegen van een nieuw element aan een dynamische array van het type vector?
sobes.tech AI
Antwoord van AI
Bij het toevoegen van een nieuw element aan een dynamische array van het type std::vector, worden de volgende acties uitgevoerd:
- Er wordt gecontroleerd of de momenteel toegewezen geheugenruimte voldoende is om het nieuwe element te plaatsen.
- Als er voldoende ruimte is, wordt het element aan het einde van de array toegevoegd.
- Als er niet genoeg geheugen is, wordt een nieuw geheugenblok van grotere grootte (meestal 1,5 tot 2 keer de huidige grootte) toegewezen.
- De bestaande elementen worden gekopieerd of verplaatst naar het nieuwe geheugenblok.
- Het oude geheugenblok wordt vrijgegeven.
- Het nieuwe element wordt aan het einde toegevoegd.
Voorbeeld:
std::vector<int> v = {1, 2, 3};
v.push_back(4); // voegt het element 4 toe
Dit mechanisme zorgt voor een geamortiseerde constante complexiteit bij het toevoegen van elementen, ondanks mogelijke herverdelingen van geheugen.