Цикл for each

В языке C++ существует еще один вариант цикла for, который позволяет перебирать элементы массива или контейнера. Формат цикла for each:

for (<Объявление переменной> : <Массив или контейнер>) {
   <Инструкции>
}

Пример вывода всех элементов массива с помощью цикла for each:

int arr[] = {10, 20, 30}; // Массив
for (int element : arr) { // Получаем копию элемента
   std::cout << element << std::endl;
}

На каждой итерации цикла переменной element присваивается копия текущего элемента массива arr. Цикл завершится, когда будут перебраны все элементы массива. Чтобы иметь возможность изменять элементы массива внутри цикла, а также для ускорения работы цикла следует объявлять переменную как ссылку, добавив перед именем переменной оператор &. Умножим каждый элемент массива на 2, а затем выведем все элементы в окно консоли:

int arr[] = {10, 20, 30};  // Массив
for (int &element : arr) { // Получаем ссылку на элемент, а не копию
   element *= 2;
}
for (int &element : arr) {
   std::cout << element << ' ';
} // 20 40 60

С помощью цикла for each можно перебирать элементы контейнеров, например, выведем в окно консоли все элементы динамического массива, реализуемого классом vector:

// #include <vector>
std::vector<int> arr = {10, 20, 30};
for (int &element : arr) {
   std::cout << element << ' ';
} // 10 20 30

Вместо конкретного типа данных удобно указать ключевое слово auto:

std::vector<int> arr = {10, 20, 30};
for (auto &element : arr) {
   std::cout << element << ' ';
} // 10 20 30

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов