Menu
CoddyTech

Итерация с помощью цикла 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Проверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор C++