Iterieren mit einer For-Schleife
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy. Lektion 14 von 56.
Nachdem du nun weißt, wie du auf einzelne Elemente zugreifst und die Größe eines Vektors überprüfst, lernen wir jetzt, wie du jedes Element systematisch mithilfe einer traditionellen for-Schleife verarbeitest. Dieser Ansatz kombiniert die Methode .size() mit dem indexbasierten Zugriff, um jedes Element der Reihe nach aufzurufen.
Eine traditionelle for-Schleife verwendet eine Indexvariable, die bei 0 beginnt und so lange erhöht wird, bis sie die Größe des Vektors erreicht:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}In diesem Beispiel stellt die Schleifenbedingung i < names.size() sicher, dass wir nicht über die Grenzen des Vektors hinausgehen, während names[i] mithilfe des aktuellen Index auf jedes Element zugreift. Die Schleife gibt jeden Namen in einer separaten Zeile aus.
Dieses Muster ist grundlegend für die Verarbeitung von Datensammlungen. Die Indexvariable i gibt dir präzise Kontrolle darüber, mit welchem Element du arbeitest, und ist daher nützlich, wenn du die Position jedes Elements kennen musst oder Elemente während der Iteration ändern möchtest.
Beachte, dass nach Beendigung der Schleife i gleich names.size() ist, in diesem Fall 3, weil die Schleife stoppt, sobald die Bedingung i < names.size() falsch wird.
Aufgabe
EinfachErstelle ein Programm, das eine traditionelle for-Schleife verwendet, um einen Vektor mit Produktnamen zu durchlaufen und sie in Form einer nummerierten Liste anzuzeigen.
Die folgenden Eingaben werden bereitgestellt:
- Eine Ganzzahl
n, die die Anzahl der Produkte angibt - Anschließend
nZeichenketten, die Produktnamen darstellen
Dein Programm sollte:
- Einen
std::vector<std::string>namensproductserstellen push_back()verwenden, um jeden dernProduktnamen zum Vektor hinzuzufügen- Eine traditionelle for-Schleife mit einer Indexvariablen verwenden, um den Vektor zu durchlaufen
- In der Schleife die
.size()-Methode für die Schleifenbedingung verwenden - Den Operator für eckige Klammern
[]verwenden, um auf jedes Element über seinen Index zuzugreifen - Jedes Produkt mit seiner Positionsnummer (beginnend bei 1) im angegebenen Format ausgeben
Verwende das folgende exakte Ausgabeformat:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...Die for-Schleife sollte mit dem Index 0 beginnen, i < products.size() als Bedingung verwenden und i in jeder Iteration erhöhen. Addiere bei der Ausgabe 1 zum Index, um Positionsnummern ab 1 anzuzeigen.
Probier es selbst
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// Lese die Anzahl der Produkte
int n;
cin >> n;
// Erstelle einen Vektor, um Produktnamen zu speichern
vector<string> products;
// Lese Produktnamen und füge sie dem Vektor hinzu
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: Schreibe deinen Code darunter
// Verwende eine traditionelle for-Schleife, um durch den Vektor zu iterieren
// und gib jedes Produkt mit seiner Positionsnummer aus
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügenÜbe selbstständig: Online-C++-Compiler