Vektoren durchlaufen: Index, range-for, Iteratoren
Durchlaufen Sie einen Vektor über Indexzugriff, range-for und explizite Iteratoren.
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 placeIteratoren
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.
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
- 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