C++ Academy · Lektion

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.

Lektion 1 von 413 Schritte

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 d

push_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 place

size 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üfung
  • v.at(i) — mit Bereichsprüfung, löst eine Ausnahme aus
  • v.front() — erstes Element
  • v.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.

Kostenlos starten

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

  1. Grundlagen von std::vector: push_back, size, capacity
  2. Vektoren durchlaufen: Index, range-for, Iteratoren
  3. Vektoren ändern: insert, erase, clear
  4. Vector vs. std::array vs. C-Array
← Zurück zu C++ Academy