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 дает вам точный контроль над тем, с каким элементом вы работаете, что делает его полезным, когда вам нужно знать позицию каждого элемента или когда вы хотите изменить элементы во время итерации.

Обратите внимание, что после завершения цикла i равно names.size() — в данном случае 3 — так как цикл останавливается, как только условие i < names.size() становится ложным.

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.

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

#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Проверьте себя

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

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