Spec-Zone.ru › C++

operator+,−(ranges::chunk_view::iterator)

friend constexpr /*iterator*/ operator+( const /*iterator*/& i,
                                         difference_type pos )
    requires ranges::random_access_range<Base>;
(1) (с C++23)
friend constexpr /*iterator*/ operator+( difference_type pos,
                                         const /*iterator*/& i )
    requires ranges::random_access_range<Base>;
(2) (с C++23)
friend constexpr /*iterator*/ operator-( const /*iterator*/& i,
                                         difference_type pos )
    requires ranges::random_access_range<Base>;
(3) (с C++23)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            const /*iterator*/& j )
    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*/& i )
    requires std::sized_sentinel_for<ranges::sentinel_t<Base>,
                                     ranges::iterator_t<Base>>;
(5) (с C++23)
friend constexpr difference_type operator-( const /*iterator*/& i,
                                            std::default_sentinel_t )
    requires std::sized_sentinel_for<ranges::sentinel_t<Base>,
                                     ranges::iterator_t<Base>>;
(6) (с C++23)

Выполняет арифметические операции с итераторами или вычисляет расстояние.

Пусть current_, end_, n_, и missing_ являются базовыми членами данных.

Эквивалентно:

1,2) auto r = i; r += pos; return r;.
3) auto r = i; r -= pos; return r;.
4) return (i.current_ - j.current_ + i.missing_ - j.missing_) / i.n_;.
5) return /*div-ceil*/(i.end_ - i.current_, i.n_);.
6) return -(y - x);.

Эти функции не видны обычным неквалифицированным или квалифицированным поискам и могут быть найдены только с помощью поиска, зависящего от аргументов, когда chunk_view::iterator<Const> является связанным классом аргументов.

Параметры

i, j - итераторы
pos - позиция относительно текущего местоположения

Значение результата

1,2) Увеличенный итератор.
3) Уменьшенный итератор.
4) Расстояние (в количестве элементов, т.е. кусков) между заданными итераторами.
5,6) Расстояние (в количестве элементов) между заданным итератором и контрольной точкой.

Пример

См. также

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

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

Spec-Zone.ru

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