C++ Vectors Beheersen: Dynamische Arrays, Iterators en Praktische Voorbeelden
Wat is een C++ Vector?
Een C++ vector is een dynamische array die zich automatisch herschaalt wanneer elementen worden toegevoegd of verwijderd. De elementen worden aaneengesloten opgeslagen, wat snelle geïndexeerde toegang en traversie via iterators mogelijk maakt.
Insertie aan het einde gebeurt in geamortiseerde constante tijd. Het verwijderen van het laatste element is ook constante tijd, terwijl invoegen of wissen aan het begin of midden elementen verschuift, wat resulteert in lineaire tijdscomplexiteit.
Wanneer een Vector Gebruiken?
- Als je een herbruikbare container nodig hebt voor elementen die in de loop van de tijd veranderen.
- Als de eindgrootte van de verzameling onbekend is tijdens compile‑tijd.
Hoe Vectors te Initialiseren in C++
std::vector<data‑type> naam (grootte, waarde); // grootte en waarde zijn optioneel
data‑typespecificeert het elementtype.naamis de identifier van de vector.- De optionele
grootte-parameter reserveert ruimte;waardeinitialiseert alle elementen.
Iterators
Iterators bieden een pointer‑achtige interface tot vector‑elementen. Veelvoorkomende iterator‑functies zijn:
begin()– eerste element.end()– past‑the‑end element.cbegin()– read‑only iterator naar het eerste element.cend()– read‑only iterator voorbij het laatste element.
Modifiers
Modifiers wijzigen de inhoud van de vector. Belangrijke functies zijn:
push_back()– voeg een element toe aan het einde.insert()– voeg in op een opgegeven positie.pop_back()– verwijder het laatste element.erase()– verwijder een bereik elementen.clear()– verwijder alle elementen.
Voorbeeld 1: Basis Iteratie
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums;
for (int a = 1; a <= 5; ++a) {
nums.push_back(a);
}
std::cout << "Output from begin and end: ";
for (auto it = nums.begin(); it != nums.end(); ++it) {
std::cout << *it << ' ';
}
std::cout << "\nOutput from cbegin and cend: ";
for (auto it = nums.cbegin(); it != nums.cend(); ++it) {
std::cout << *it << ' ';
}
return 0;
}
Output:

Voorbeeld 2: Geavanceerde Modifiers
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums;
nums.assign(5, 1); // vijf elementen, alle geïnitialiseerd op 1
std::cout << "Vector contents: ";
for (size_t i = 0; i < nums.size(); ++i) {
std::cout << nums[i] << ' ';
}
nums.push_back(2);
std::cout << "\nLast element: " << nums.back();
nums.pop_back();
std::cout << "\nVector contents: ";
for (int a : nums) std::cout << a << ' ';
nums.insert(nums.begin(), 7);
std::cout << "\nFirst element: " << nums.front();
nums.clear();
std::cout << "\nSize after clear(): " << nums.size();
return 0;
}
Output:

Capaciteits‑Functies
Bepaal en manipuleer de opslagkenmerken van een vector met de volgende functies:
size()– huidig aantal elementen.max_size()– theoretisch maximum aantal elementen.capacity()– toegewezen opslagcapaciteit.resize(n)– wijzig het aantal elementen naarn, toevoegen of verwijderen naar behoefte.empty()– true als de vector geen elementen bevat.
Voorbeeld 3: Capaciteits‑Exploratie
#include <iostream>
#include <vector>
int main() {
std::vector<int> vector1;
for (int x = 1; x <= 10; ++x) {
vector1.push_back(x);
}
std::cout << "Vector size: " << vector1.size() << std::endl;
std::cout << "Vector capacity: " << vector1.capacity() << std::endl;
std::cout << "Maximum size of vector: " << vector1.max_size() << std::endl;
vector1.resize(5);
std::cout << "Vector size after resizing: " << vector1.size() << std::endl;
if (!vector1.empty())
std::cout << "Vector is not empty" << std::endl;
else
std::cout << "Vector is empty" << std::endl;
return 0;
}
Output:

Belangrijkste Lessons
- Een C++ vector is een hoogst efficiënte, automatisch herschaalbare container.
- Elementen liggen in aaneengesloten geheugen, wat snelle willekeurige toegang geeft.
- Invoegen en verwijderen aan de achterkant zijn geamortiseerde constante tijd; aan de voorkant of midden lineaire tijd.
- Vectors zijn ideaal voor scenario's met onvoorspelbare of veranderlijke datagrootte.
C Taal
- C Standaardbibliotheek-functies onder de knie krijgen: Een praktische gids
- C++ Operators Uitgelegd: Typen, Voorbeelden en Voorbeeldprogramma's
- C++ do‑while Lus: Syntaxis, Praktische Voorbeelden en Geneste Lussen
- C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
- C++ Dynamische Array‑Allocatie: Praktische Handleiding met Code‑Voorbeelden
- C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
- C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
- C++ Structs Uitgelegd met een Praktisch Voorbeeld
- Beheersen van std::list in C++: Syntaxis, Functies & Praktische Voorbeelden
- C++ Functies Uitgelegd met Praktische Codevoorbeelden
- C++ Struct vs Class: Belangrijkste Verschillen, Syntaxis en Beste Gebruikssituaties