Grundlagen von std::vector: push_back, size, capacity
Erstellen und erweitern Sie Vektoren, untersuchen Sie sie und verstehen Sie den Unterschied zwischen capacity und size.
Grundlagen von std::vector: push_back, size, capacity ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum std::vector?
std::vector ist der Standardcontainer in C++. Er wächst automatisch, verwaltet den Speicher für Sie und bietet wahlfreien Zugriff in O(1). Verwenden Sie ihn, sofern kein bestimmter Grund dagegenspricht.
Einbinden und Deklarieren
Binden Sie <vector> ein und deklarieren Sie den Container mit dem Elementtyp als Templateparameter.
#include <vector>
std::vector<int> nums;
std::vector<std::string> names = {"Ada", "Bob"};Initialisierungsformen
Es gibt mehrere Möglichkeiten, einen Vektor zu initialisieren:
std::vector<int> a; // empty
std::vector<int> b(5); // 5 zeros
std::vector<int> c(5, 42); // 5 copies of 42
std::vector<int> d{1, 2, 3}; // {1,2,3}
std::vector<int> e(d); // copy of dpush_back: Am Ende einfügen
Fügen Sie ein Element mit push_back am Ende ein. Die amortisierte Komplexität beträgt O(1).
std::vector<int> v;
v.push_back(10);
v.push_back(20);
v.push_back(30);emplace_back: Direkt konstruieren
emplace_back leitet seine Argumente an den Elementkonstruktor weiter — es entsteht kein temporäres Objekt. Bei nichttrivialen Typen ist das etwas schneller.
std::vector<std::pair<int,int>> v;
v.emplace_back(1, 2); // constructs a pair in placesize vs capacity
Zwei unterschiedliche Konzepte:
- size — Anzahl der aktuell gespeicherten Elemente
- capacity — Anzahl der Elemente, die der Speicher ohne eine Neuzuweisung aufnehmen kann
Die Kapazität wächst in Blöcken, normalerweise durch Verdopplung.
size und capacity untersuchen
Verwenden Sie die entsprechenden Memberfunktionen:
std::vector<int> v;
for (int i = 0; i < 10; ++i) {
v.push_back(i);
std::cout << "size=" << v.size() << " capacity=" << v.capacity() << "\n";
}reserve: Kapazität vorab reservieren
Wenn Sie wissen, wie viele Elemente Sie hinzufügen werden, rufen Sie zuerst reserve auf, um wiederholte Neuzuweisungen zu vermeiden.
std::vector<int> v;
v.reserve(1000000); // preallocate
for (int i = 0; i < 1000000; ++i) v.push_back(i);shrink_to_fit: Speicher freigeben
Geben Sie nach dem Löschen vieler Elemente ungenutzte Kapazität mit shrink_to_fit frei. Das Verhalten ist nicht verbindlich — die Implementierung darf zusätzlichen Speicher behalten.
Zugriff auf Elemente
Vier Möglichkeiten:
v[i]— ohne Bereichsprüfungv.at(i)— mit Bereichsprüfung, löst eine Ausnahme ausv.front()— erstes Elementv.back()— letztes Element
empty und clear
Prüfen Sie mit empty(), ob der Vektor leer ist. Entfernen Sie mit clear() alle Elemente — die Kapazität bleibt unverändert.
Kurzer Test
Warum hat push_back eine amortisierte Laufzeit von O(1)?
Zusammenfassung
std::vector ist ein dynamisch wachsendes Array mit wahlfreiem Zugriff in O(1). size() gibt die Anzahl der Elemente an, capacity() die Größe des reservierten Speichers. reserve() vermeidet Neuzuweisungen, wenn die endgültige Größe bekannt ist.
Lerne C++ mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 51
- Lektionen
- 203
Häufig gestellte Fragen
Ist die Lektion „Grundlagen von std::vector: push_back, size, capacity“ kostenlos?
Ja — der vollständige Text von „Grundlagen von std::vector: push_back, size, capacity“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Grundlagen von std::vector: push_back, size, capacity“?
Erstellen und erweitern Sie Vektoren, untersuchen Sie sie und verstehen Sie den Unterschied zwischen capacity und size. Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C++ Academy zu starten?
Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Grundlagen von std::vector: push_back, size, capacity“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?
Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundlagen von std::vector: push_back, size, capacity
- Vektoren durchlaufen: Index, range-for, Iteratoren
- Vektoren ändern: insert, erase, clear
- Vector vs. std::array vs. C-Array