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

Функция views::all

Функция views::all из пространства имен std::ranges создает представление, которое охватывает все элементы переданного диапазона. Это представление не владеет элементами, а лишь ссылается на них, что делает его эффективным по памяти. В первый параметр мы передаем диапазон (контейнер, массив или другое представление), элементы которого нужно обернуть в представление.

Функция особенно полезна при построении цепочек представлений, когда необходимо превратить контейнер в view для дальнейшей фильтрации, трансформации или других операций.

Синтаксис

std::views::all(range)

Пример

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

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

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

1 2 3 4 5

Пример

Представление, созданное через views::all, можно комбинировать с другими адаптерами, например, с views::filter:

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

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

2 4

Пример

Функция views::all также работает со строкой. Давайте создадим представление из строки "abcde" и выведем символы:

#include <iostream> #include <string> #include <ranges> using namespace std; int main() { string str = "abcde"; auto view = views::all(str); for (char c : view) { cout << c << " "; } cout << endl; return 0; }

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

"a b c d e"

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

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