Iterowanie za pomocą pętli for
Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 14 z 56.
Skoro wiesz już, jak uzyskiwać dostęp do poszczególnych elementów i sprawdzać rozmiar wektora, nauczmy się teraz systematycznie przetwarzać każdy element za pomocą tradycyjnej pętli for. To podejście łączy metodę .size() z dostępem opartym na indeksach, aby odwiedzić kolejno każdy element.
Tradycyjna pętla for używa zmiennej indeksowej, która zaczyna się od 0 i zwiększa się, aż osiągnie rozmiar wektora:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}W tym przykładzie warunek pętli i < names.size() zapewnia, że nie wyjdziemy poza zakres wektora, a names[i] uzyskuje dostęp do każdego elementu przy użyciu bieżącego indeksu. Pętla wypisze każde imię w osobnym wierszu.
Ten wzorzec ma fundamentalne znaczenie podczas przetwarzania zbiorów danych. Zmienna indeksu i pozwala precyzyjnie kontrolować, nad którym elementem pracujesz, co jest przydatne, gdy musisz znać pozycję każdego elementu lub chcesz modyfikować elementy podczas iteracji.
Zauważ, że po zakończeniu pętli i jest równe names.size(), w tym przypadku 3, ponieważ pętla zatrzymuje się, gdy tylko warunek i < names.size() stanie się fałszywy.
Wyzwanie
ŁatwyUtwórz program, który używa tradycyjnej pętli for do iterowania po wektorze nazw produktów i wyświetlania ich w formie ponumerowanej listy.
Podane zostaną następujące dane wejściowe:
- Liczba całkowita
nreprezentująca liczbę produktów - Następnie
nciągów znaków reprezentujących nazwy produktów
Twój program powinien:
- Utworzyć
std::vector<std::string>o nazwieproducts - Użyć
push_back(), aby dodać do wektora każdą znnazw produktów - Użyć tradycyjnej pętli for ze zmienną indeksującą, aby iterować po wektorze
- W pętli użyć metody
.size()jako warunku pętli - Użyć operatora nawiasów kwadratowych
[], aby uzyskać dostęp do każdego elementu według indeksu - Wypisać każdy produkt wraz z jego numerem pozycji (zaczynając od 1) w określonym formacie
Użyj dokładnie następującego formatu wyjściowego:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...Pętla for powinna zaczynać się od indeksu 0, używać i < products.size() jako warunku i zwiększać i w każdej iteracji. Podczas wypisywania dodaj 1 do indeksu, aby wyświetlać numery pozycji zaczynające się od 1.
Spróbuj swoich sił
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// Wczytaj liczbę produktów
int n;
cin >> n;
// Utwórz wektor do przechowywania nazw produktów
vector<string> products;
// Wczytaj nazwy produktów i dodaj je do wektora
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: Napisz swój kod poniżej
// Użyj tradycyjnej pętli for, aby przejść przez wektor
// i wypisz każdy produkt wraz z numerem jego pozycji
return 0;
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Wskaźniki i pamięć
Czym jest wskaźnik?Operator pobrania adresuOperator dereferencjiWskaźniki zeroweWskaźniki i tabliceDynamiczne zarządzanie pamięcią za pomocą „new”Zwalnianie pamięci za pomocą „delete”Podsumowanie — ćwiczenia ze wskaźnikami2Wektory (tablice dynamiczne)
Wprowadzenie do std::vectorTworzenie wektoraDodawanie elementówDostęp do elementówRozmiar wektoraIterowanie za pomocą pętli forPętla for oparta na zakresieUsuwanie elementówPodsumowanie — operacje na wektorach5Projekt: Narzędzie do zarządzania zapasami
Konfiguracja projektuDodawanie i aktualizowanie produktów3Projekt: narzędzie do listy zadań
Przegląd projektuDodawanie zadaniaPoćwicz samodzielnie: Kompilator C++ online