Spec-Zone.ru › C++

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) Эквивалентно auto r = i; r -= n; return r;.
4) Пусть 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) Расстояние между заданным итератором и сентинелом

Пример

См. также

operator++operator++(int)operator--operator--(int)operator+=operator-=
увеличивает или уменьшает базовый итератор
(функция-член класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/stride_view/iterator/operator_arith2

Spec-Zone.ru

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