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

Функция ranges::end

Функция ranges::end возвращает итератор, указывающий на позицию после последнего элемента диапазона. Сама коллекция при этом не изменяется. В первый параметр мы передаем диапазон (контейнер, массив или view), для которого нужно получить конечный итератор. Функция доступна из заголовочного файла <ranges> и является частью библиотеки Ranges, добавленной в C++20.

В отличие от классической функции std::end, версия из пространства имен ranges умеет работать не только с контейнерами, но и с представлениями (views) и любыми объектами, для которых определено понятие диапазона.

Синтаксис

std::ranges::end(range)

Пример

Давайте получим итератор на конец вектора и пройдём по всем его элементам с помощью цикла:

#include <iostream> #include <vector> #include <ranges> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; for (auto it = ranges::begin(v); it != ranges::end(v); ++it) { cout << *it << " "; } cout << endl; return 0; }

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

1 2 3 4 5

Пример

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

#include <iostream> #include <vector> #include <ranges> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto dist = ranges::distance(ranges::begin(v), ranges::end(v)); cout << dist << endl; return 0; }

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

5

Пример

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

#include <iostream> #include <vector> #include <ranges> using namespace std; int main() { vector<int> v; if (ranges::begin(v) == ranges::end(v)) { cout << "empty" << endl; } return 0; }

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

"empty"

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

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