Menu
Coddy logo textTech

Итерация с помощью цикла For

Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 14 из 56.

Теперь, когда вы знаете, как обращаться к отдельным элементам и проверять размер вектора, давайте узнаем, как систематически обрабатывать каждый элемент с помощью традиционного цикла for. Этот подход сочетает в себе метод .size() с доступом по индексу для последовательного посещения каждого элемента.

Традиционный цикл for использует переменную-индекс, которая начинается с 0 и увеличивается до тех пор, пока не достигнет размера вектора:

std::vector<std::string> names = {"Alice", "Bob", "Charlie"};

for (int i = 0; i < names.size(); i++) {
    std::cout << names[i] << std::endl;
}

В этом примере условие цикла i < names.size() гарантирует, что мы не выйдем за пределы вектора, в то время как names[i] обращается к каждому элементу, используя текущий индекс. Цикл выведет каждое имя на отдельной строке.

Этот паттерн является фундаментальным для обработки коллекций данных. Переменная индекса i дает вам точный контроль над тем, с каким элементом вы работаете, что делает его полезным, когда вам нужно знать позицию каждого элемента или когда вы хотите изменить элементы во время итерации.

challenge icon

Задание

Легко

Создайте программу, которая использует традиционный цикл for для итерации по вектору названий продуктов и выводит их в формате нумерованного списка.

Будут предоставлены следующие входные данные:

  • Целое число n, представляющее количество продуктов
  • Затем n строк, представляющих названия продуктов

Ваша программа должна:

  1. Создать std::vector<std::string> с именем products
  2. Использовать push_back() для добавления каждого из n названий продуктов в вектор
  3. Использовать традиционный цикл for с переменной-индексом для итерации по вектору
  4. В цикле использовать метод .size() для условия цикла
  5. Использовать оператор квадратных скобок [] для доступа к каждому элементу по индексу
  6. Вывести каждый продукт с его порядковым номером (начиная с 1) в указанном формате

Используйте следующий точный формат вывода:

Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...

Цикл for должен начинаться с индекса 0, использовать i < products.size() в качестве условия и увеличивать i на каждой итерации. При выводе добавляйте 1 к индексу, чтобы отображать порядковые номера, начиная с 1.

Шпаргалка

Используйте традиционный цикл for для итерации по вектору, комбинируя .size() с доступом по индексу:

std::vector<std::string> names = {"Alice", "Bob", "Charlie"};

for (int i = 0; i < names.size(); i++) {
    std::cout << names[i] << std::endl;
}

Условие цикла i < names.size() гарантирует, что вы не выйдете за границы вектора, в то время как names[i] обращается к каждому элементу по текущему индексу. Переменная индекса дает вам точный контроль над тем, с каким элементом вы работаете, и позволяет знать позицию каждого элемента.

Попробуйте сами

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    // Считать количество продуктов
    int n;
    cin >> n;
    
    // Создать вектор для хранения названий продуктов
    vector<string> products;
    
    // Считать названия продуктов и добавить их в вектор
    for (int i = 0; i < n; i++) {
        string product;
        cin >> product;
        products.push_back(product);
    }
    
    // TODO: Напишите свой код ниже
    // Используйте традиционный цикл for для итерации по вектору
    // и выведите каждый продукт с его порядковым номером
    
    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком