Spec-Zone.ru › C++

std::ranges::subrange<I,S,K>::prev

[[nodiscard]] constexpr subrange prev( std::iter_difference_t<I> n = 1 ) const
    requires std::bidirectional_iterator<I>;
(since C++20)

Получает subrange с итератором, уменьшенным на n раз или увеличенным на min(-n, size()) раз по отношению к итератору *this, когда n >= 0 или n < 0 соответственно.

Эквивалентно auto tmp = *this; tmp.advance(-n); return tmp;. Поведение не определено, если итератор уменьшается после того, как он стал недопустимым для уменьшения.

Параметры

n - число минимальных уменьшений итератора

Возвращаемое значение

subrange с итератором, уменьшенным на n раз или увеличенным на min(-n, size()) раз по отношению к итератору *this, когда n >= 0 или n < 0 соответственно.

Сложность

Обычно n уменьшений или min(-n, size()) увеличений итератора, когда n >= 0 или n < 0 соответственно.

Постоянная, если I моделирует random_access_iterator, и либо n >= 0 , либо std::sized_sentinel_for<S, I> моделируется.

Пример

См. также

next
(C++20)
получает копию subrange с продвинутым на заданное расстояние итератором
(публичный член-функция)
advance
(C++20)
продвигает итератор на заданное расстояние
(публичный член-функция)
prev
(C++11)
уменьшает итератор
(шаблон функции)
ranges::prev
(C++20)
уменьшает итератор на заданное расстояние или до границы
(niebloid)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/subrange/prev

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API