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

Функция prev

Функция prev возвращает итератор, указывающий на элемент, расположенный на n позиций раньше исходного. По умолчанию сдвиг равен 1. Функция не изменяет исходный итератор, а возвращает его копию, смещенную назад. В первый параметр мы передаем итератор, от которого начинаем движение, а во второй - количество позиций для сдвига назад.

Функция доступна из заголовочного файла iterator и работает с двунаправленными итераторами (bidirectional iterators) и итераторами произвольного доступа (random access iterators).

Синтаксис

prev(iterator, [count])

Пример

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

#include <iostream> #include <vector> #include <iterator> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; auto it = vec.end(); auto prevIt = prev(it); cout << *prevIt << endl; return 0; }

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

5

Пример

Давайте сдвинем итератор на три позиции назад от конца вектора и выведем значение:

#include <iostream> #include <vector> #include <iterator> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; auto it = vec.end(); auto prevIt = prev(it, 3); cout << *prevIt << endl; return 0; }

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

3

Пример

Давайте пройдем по вектору в обратном порядке, используя функцию prev в цикле:

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

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

5 4 3 2 1

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

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