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-=
увеличивает или уменьшает базовый итератор
(открытая функция-член)

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

Spec-Zone.ru

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