operator+,-(ranges::stride_view::iterator)
friend constexpr /*iterator*/
operator+( const /*iterator*/& i, difference_type n )
requires ranges::random_access_range<Base>;
| (1) | (начиная с C++23) |
friend constexpr /*iterator*/
operator+( difference_type n, const /*iterator*/& i )
requires ranges::random_access_range<Base>;
| (2) | (начиная с C++23) |
friend constexpr /*iterator*/
operator-( const /*iterator*/& i, difference_type n )
requires ranges::random_access_range<Base>;
| (3) | (начиная с C++23) |
friend constexpr difference_type
operator-( const /*iterator*/& x, const /*iterator*/& y )
requires std::sized_sentinel_for<ranges::iterator_t<Base>,
ranges::iterator_t<Base>>;
| (4) | (начиная с C++23) |
friend constexpr difference_type
operator-( std::default_sentinel_t, const /*iterator*/& x )
requires std::sized_sentinel_for<ranges::sentinel_t<Base>,
ranges::iterator_t<Base>>;
| (5) | (начиная с C++23) |
friend constexpr difference_type
operator-( const /*iterator*/& x, std::default_sentinel_t s )
requires std::sized_sentinel_for<ranges::sentinel_t<Base>,
ranges::iterator_t<Base>>;
| (6) | (начиная с C++23) |
Увеличивает или уменьшает итератор.
Пусть current_, end_, stride_ и missing_ — члены данных итератора.
1,2) Эквивалентно
auto r = i; r += n; return r;.
3) Эквивалентно
4) Пусть auto r = i; r -= n; return r;.N — это x.current_ - y.current_. Возвращает: -
(N + x.missing_ - y.missing_) / x.stride_, еслиBaseудовлетворяет требованиямforward_range. -
-/*div-ceil*/(-N, x.stride_), еслиN < 0. -
/*div-ceil*/(N, x.stride_)в противном случае.
5) Эквивалентно
return /*div-ceil*/(x.end_ - x.current_, x.stride_);.
6) Эквивалентно
return -(s - x);.Эти функции не видны при обычном неквалифицированном или квалифицированном поиске и могут быть найдены только с помощью поиска с учетом аргументов, если stride_view::iterator<Const> является ассоциированным классом аргументов.
Параметры
| x, y, i | - | итераторы |
| s | - | сентинел |
Возвращаемое значение
1,2) Увеличенный итератор
3) Уменьшенный итератор
4) Расстояние между заданными итераторами
5,6) Расстояние между заданным итератором и сентинелом
Пример
См. также
| увеличивает или уменьшает базовый итератор (функция-член класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/stride_view/iterator/operator_arith2