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

Класс subrange

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

Синтаксис

template<class I, class S> class subrange;

Пример

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

#include <iostream> #include <vector> #include <ranges> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; ranges::subrange sub(vec.begin(), vec.end()); for (int elem : sub) { cout << elem << ' '; } cout << endl; return 0; }

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

1 2 3 4 5

Пример

Давайте создадим subrange только для части вектора, начиная со второго элемента:

#include <iostream> #include <vector> #include <ranges> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; ranges::subrange sub(vec.begin() + 1, vec.end()); for (int elem : sub) { cout << elem << ' '; } cout << endl; return 0; }

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

2 3 4 5

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

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