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

Функция views::enumerate

Функция views::enumerate создает представление, которое добавляет порядковый номер к каждому элементу исходного диапазона. В первом параметре мы передаем диапазон, который нужно пронумеровать. Функция возвращает представление, элементы которого являются парами: первый элемент пары - это индекс (начиная с 0), а второй - значение исходного элемента.

Синтаксис

std::views::enumerate(range)

Пример

Давайте пронумеруем элементы вектора с числами:

#include <iostream> #include <vector> #include <ranges> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; for (auto [index, value] : v | views::enumerate) { cout << index << ": " << value << endl; } return 0; }

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

"0: 1" "1: 2" "2: 3" "3: 4" "4: 5"

Пример

Давайте пронумеруем элементы вектора со строками:

#include <iostream> #include <vector> #include <string> #include <ranges> using namespace std; int main() { vector<string> v = {"a", "b", "c", "d", "e"}; for (auto [index, value] : v | views::enumerate) { cout << index << ": " << value << endl; } return 0; }

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

"0: a" "1: b" "2: c" "3: d" "4: e"

Пример

Давайте используем views::enumerate вместе с views::filter, чтобы пронумеровать только четные элементы:

#include <iostream> #include <vector> #include <ranges> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto res = v | views::filter([](int x) { return x % 2 == 0; }) | views::enumerate; for (auto [index, value] : res) { cout << index << ": " << value << endl; } return 0; }

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

"0: 2" "1: 4"

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

  • функция views::filter,
    которая фильтрует элементы диапазона
  • функция views::transform,
    которая преобразует элементы диапазона
  • функция views::keys,
    которая извлекает ключи из пар
  • функция views::values,
    которая извлекает значения из пар
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить