C++ Vectors meistern: Dynamische Arrays, Iteratoren & Praxisbeispiele
Was ist ein C++ Vector?
Einfügen am Ende erfolgt in amortisierter konstanter Zeit. Entfernen des letzten Elements ist ebenfalls konstant, während Einfügen oder Löschen am Anfang oder in der Mitte lineare Zeit erfordert, da Elemente verschoben werden müssen.
Wann einen Vector verwenden?
- Wenn Sie einen veränderlichen Container für Elemente benötigen, deren Anzahl sich zur Laufzeit ändert.
- Wenn die finale Größe der Sammlung zur Compile‑Zeit unbekannt ist.
Vektoren in C++ initialisieren
std::vector<datentyp> name (groesse, wert); // groesse und wert sind optional
datentyplegt den Elementtyp fest.nameist der Bezeichner des Vektors.- Optionaler Parameter
groessereserviert Speicher;wertinitialisiert alle Elemente.
Iteratoren
Iteratoren bieten eine zeigerähnliche Schnittstelle zu Vektorelementen. Häufige Iterator‑Funktionen:
begin()– erstes Element.end()– Element hinter dem letzten (past‑the‑end).cbegin()– Read‑only‑Iterator zum ersten Element.cend()– Read‑only‑Iterator hinter dem letzten Element.
Modifizierer
Modifizierer ändern den Vektoreninhalt. Wichtige Funktionen:
push_back()– Element am Ende anhängen.insert()– An angegebener Position einfügen.pop_back()– Letztes Element entfernen.erase()– Elementbereich löschen.clear()– Alle Elemente entfernen.
Beispiel 1: Grundlegende Iteration
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums;
for (int a = 1; a <= 5; ++a) {
nums.push_back(a);
}
std::cout << "Ausgabe von begin bis end: ";
for (auto it = nums.begin(); it != nums.end(); ++it) {
std::cout << *it << ' ';
}
std::cout << "\nAusgabe von cbegin bis cend: ";
for (auto it = nums.cbegin(); it != nums.cend(); ++it) {
std::cout << *it << ' ';
}
return 0;
}
Ausgabe:

Beispiel 2: Fortgeschrittene Modifizierer
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums;
nums.assign(5, 1); // fünf Elemente, alle mit 1 initialisiert
std::cout << "Vektorinhalt: ";
for (size_t i = 0; i < nums.size(); ++i) {
std::cout << nums[i] << ' ';
}
nums.push_back(2);
std::cout << "\nLetztes Element: " << nums.back();
nums.pop_back();
std::cout << "\nVektorinhalt: ";
for (int a : nums) std::cout << a << ' ';
nums.insert(nums.begin(), 7);
std::cout << "\nErstes Element: " << nums.front();
nums.clear();
std::cout << "\nGröße nach clear(): " << nums.size();
return 0;
}
Ausgabe:

Kapazitäts‑Funktionen
Speichereigenschaften eines Vektors ermitteln und steuern:
size()– aktuelle Elementanzahl.max_size()– theoretisches Maximum an Elementen.capacity()– allokierte Speicherkapazität.resize(n)– Elementanzahl aufnändern, Elemente hinzufügen/entfernen.empty()–true, wenn Vektor leer.
Beispiel 3: Kapazität erkunden
#include <iostream>
#include <vector>
int main() {
std::vector<int> vector1;
for (int x = 1; x <= 10; ++x) {
vector1.push_back(x);
}
std::cout << "Vektorgröße: " << vector1.size() << std::endl;
std::cout << "Vektorkapazität: " << vector1.capacity() << std::endl;
std::cout << "Maximale Vektorgröße: " << vector1.max_size() << std::endl;
vector1.resize(5);
std::cout << "Vektorgröße nach Resize: " << vector1.size() << std::endl;
if (!vector1.empty())
std::cout << "Vektor ist nicht leer" << std::endl;
else
std::cout << "Vektor ist leer" << std::endl;
return 0;
}
Ausgabe:

Kernpunkte
- Ein C++ Vector ist ein hocheffizienter, automatisch skalierbarer Container.
- Elemente liegen in zusammenhängendem Speicher → schneller Zufallszugriff.
- Einfügen/Entfernen am Ende: amortisiert O(1); am Anfang/In der Mitte: O(n).
- Vektoren sind ideal für Szenarien mit unvorhersehbaren oder sich ändernden Datengrößen.
C Sprache
- C-Standardbibliothek-Funktionen meistern: Praxisleitfaden
- C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
- C++ do‑while‑Schleife: Syntax, Praxisbeispiele und verschachtelte Schleifen
- C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
- C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
- C++ Zeiger meistern: Konzepte, Beispiele & praktische Anwendungen
- C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
- std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele
- C++-Funktionen erklärt: Mit praktischen Code-Beispielen
- C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle