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> моделируется.
Пример
См. также
|
(C++20) | получает копию subrange с продвинутым на заданное расстояние итератором (публичный член-функция) |
|
(C++20) | продвигает итератор на заданное расстояние (публичный член-функция) |
|
(C++11) | уменьшает итератор (шаблон функции) |
|
(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