РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
9 of 815 menu

Диапазонный for

Диапазонный for (range-based for) - это специальная форма цикла for, которая позволяет перебирать элементы контейнера, массива или любой другой последовательности без использования индексов и итераторов. В заголовке цикла мы указываем переменную, в которую будет попадать текущий элемент, и саму коллекцию, которую нужно перебрать. Это делает код короче и безопаснее, так как исключает ошибки выхода за границы контейнера.

Синтаксис

for (type element : collection) { // body }

Здесь type - тип элемента (его можно заменить на auto для автоматического вывода), element - имя переменной, в которую попадает текущий элемент, а collection - контейнер, массив или последовательность, которую мы перебираем.

Пример

Давайте переберём все элементы массива и выведем их на экран:

#include <iostream> using namespace std; int main() { int arr[] = {1, 2, 3, 4, 5}; for (int el : arr) { cout << el << " "; } return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте переберём элементы вектора, используя auto для автоматического вывода типа:

#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; for (auto el : vec) { cout << el << " "; } return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

По умолчанию переменная цикла получает копию элемента. Чтобы изменять элементы контейнера прямо в цикле, нужно использовать ссылку:

#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; for (int& el : vec) { el *= 2; } for (int el : vec) { cout << el << " "; } return 0; }

Результат выполнения кода:

2 4 6 8 10

Пример

Давайте переберём символы строки "abcde":

#include <iostream> #include <string> using namespace std; int main() { string str = "abcde"; for (char ch : str) { cout << ch << " "; } return 0; }

Результат выполнения кода:

"a b c d e"

Смотрите также

  • цикл for,
    классическая форма цикла со счётчиком
  • цикл while,
    который выполняет тело, пока условие истинно
  • оператор break,
    который прерывает выполнение цикла
  • оператор continue,
    который переходит к следующей итерации цикла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить