Menu
Coddy logo textTech

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.

challenge icon

Wyzwanie

Łatwy

Utwó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 n reprezentująca liczbę produktów
  • Następnie n ciągów znaków reprezentujących nazwy produktów

Twój program powinien:

  1. Utworzyć std::vector<std::string> o nazwie products
  2. Użyć push_back(), aby dodać do wektora każdą z n nazw produktów
  3. Użyć tradycyjnej pętli for ze zmienną indeksującą, aby iterować po wektorze
  4. W pętli użyć metody .size() jako warunku pętli
  5. Użyć operatora nawiasów kwadratowych [], aby uzyskać dostęp do każdego elementu według indeksu
  6. 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;
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator C++ online