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

Функция make_reverse_iterator

Функция make_reverse_iterator создает обратный итератор (<reverse_iterator>) из переданного ей обычного итератора. Обратный итератор позволяет обходить контейнер в обратном направлении - от последнего элемента к первому. В качестве параметра функция принимает обычный итератор, а возвращает соответствующий ему обратный итератор.

Функция объявлена в заголовочном файле <iterator> и доступна начиная со стандарта C++14.

Синтаксис

template <class Iter> reverse_iterator<Iter> make_reverse_iterator(Iter it);

Пример

Давайте создадим обратный итератор из итератора, указывающего на элемент 'c' в строке "abcde", и выведем значение, на которое он указывает:

#include <iostream> #include <string> #include <iterator> using namespace std; int main() { string str = "abcde"; auto it = str.begin() + 2; auto rev = make_reverse_iterator(it); cout << *rev << endl; return 0; }

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

"b"

Обратите внимание: обратный итератор, построенный из итератора на элемент с индексом 2, указывает на предыдущий элемент с индексом 1. Это связано с тем, что разыменование обратного итератора возвращает элемент, стоящий перед базовым итератором.

Пример

Давайте создадим обратный итератор из итератора end и используем его для обхода всего вектора в обратном порядке:

#include <iostream> #include <vector> #include <iterator> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; auto rev = make_reverse_iterator(vec.end()); auto revEnd = make_reverse_iterator(vec.begin()); while (rev != revEnd) { cout << *rev << " "; ++rev; } cout << endl; return 0; }

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

5 4 3 2 1

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

  • класс reverse_iterator,
    который представляет обратный итератор
  • функция rbegin,
    которая возвращает обратный итератор на первый элемент в обратном порядке
  • функция rend,
    которая возвращает обратный итератор на элемент перед первым
  • функция next,
    которая сдвигает итератор вперед на заданное число позиций
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить