C++ Academy · Lektion

Vektoren durchlaufen: Index, range-for, Iteratoren

Durchlaufen Sie einen Vektor über Indexzugriff, range-for und explizite Iteratoren.

Lektion 2 von 413 Schritte

Vektoren durchlaufen: Index, range-for, Iteratoren ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Drei Möglichkeiten zur Iteration

Sie können einen Vektor auf drei Arten durchlaufen:

  • Indexbasiert mit for (size_t i = 0; i < v.size(); ++i)
  • Bereichsbasiert mit for (auto& x : v)
  • Mit Iteratoren: for (auto it = v.begin(); it != v.end(); ++it)

Indexbasierte Schleife

Aus C vertraut. Nützlich, wenn Sie neben dem Wert auch den Index benötigen.

for (size_t i = 0; i < v.size(); ++i) {
    std::cout << i << ": " << v[i] << "\n";
}

size_t vs int

size() gibt size_t zurück — einen vorzeichenlosen Typ. Das Mischen mit einem vorzeichenbehafteten int-Zähler verursacht Compilerwarnungen und subtile Fehler. Verwenden Sie size_t oder std::ssize aus C++20.

Bereichsbasierte for-Schleife

Die übersichtlichste Form, wenn Sie keine Indizes benötigen. Wählen Sie den passenden Referenzqualifizierer.

for (const auto& x : v) std::cout << x << " ";   // read only
for (auto& x : v) x *= 2;                          // modify in place

Iteratoren

Ein Iterator ist ein verallgemeinerter Zeiger. v.begin() zeigt auf das erste Element, v.end() auf die Position direkt hinter dem letzten.

for (auto it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " ";
}

const_iterator

Verwenden Sie cbegin() und cend(), wenn Sie die Elemente nicht ändern müssen — der Iteratortyp ist const_iterator.

Reverse-Iteratoren

rbegin() und rend() durchlaufen den Vektor vom Ende zum Anfang. Das Dereferenzieren liefert dieselben Elemente, aber in umgekehrter Reihenfolge.

for (auto it = v.rbegin(); it != v.rend(); ++it) {
    std::cout << *it << " ";
}

Iteratorarithmetik

Vektoriteratoren bieten wahlfreien Zugriff: Sie können Ganzzahlen addieren und subtrahieren und mit < vergleichen.

auto it = v.begin();
it += 3;          // skip 3 elements
std::cout << *it;

Algorithmen verwenden Iteratoren

STL-Algorithmen verwenden Iteratorpaare. Übergeben Sie v.begin(), v.end() an Algorithmen wie std::sort oder std::find.

#include <algorithm>
std::sort(v.begin(), v.end());
auto it = std::find(v.begin(), v.end(), 42);

Wann Iteratoren ungültig werden

Beim Hinzufügen zu einem Vektor kann eine Neuzuweisung erfolgen. Alle Iteratoren, Zeiger und Referenzen auf Elemente des Vektors werden nach jeder Operation ungültig, die die Kapazität verändert.

Stolperfalle: Ändern während der Iteration

Rufen Sie niemals push_back oder erase während einer bereichsbasierten for-Schleife über denselben Vektor auf. Erstellen Sie einen neuen Vektor oder sammeln Sie die zu bearbeitenden Indizes und verarbeiten Sie sie anschließend.

Kurzer Test

Welche Iterationsform macht ihren Iterator ungültig, wenn push_back eine Neuzuweisung auslöst?

Zusammenfassung

Wählen Sie eine bereichsbasierte for-Schleife, wenn Sie keine Indizes benötigen, eine indexbasierte Schleife, wenn Sie Indizes benötigen, und eine iteratorbasierte Schleife für die Arbeit mit Algorithmen. Eine Neuzuweisung macht Iteratoren ungültig — rufen Sie niemals push_back während der Iteration auf.

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 „Vektoren durchlaufen: Index, range-for, Iteratoren“ kostenlos?

Ja — der vollständige Text von „Vektoren durchlaufen: Index, range-for, Iteratoren“ 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 „Vektoren durchlaufen: Index, range-for, Iteratoren“?

Durchlaufen Sie einen Vektor über Indexzugriff, range-for und explizite Iteratoren. 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 2 von 4.

Wie lange dauert die Lektion „Vektoren durchlaufen: Index, range-for, Iteratoren“?

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