operator+,-(ranges::concat_view::iterator)

来自cppreference.com
< cpp‎ | ranges‎ | concat view‎ | iterator


 
 
范围库
范围适配器
 
 
friend constexpr /*iterator*/

    operator+( const /*iterator*/& it, difference_type n )

        requires /*concat-is-random-access*/<Const, Views...>;
(1) (C++26 起)
friend constexpr /*iterator*/

    operator+( difference_type n, const /*iterator*/& it )

        requires /*concat-is-random-access*/<Const, Views...>;
(2) (C++26 起)
friend constexpr /*iterator*/

    operator-( const /*iterator*/& it, difference_type n )

        requires /*concat-is-random-access*/<Const, Views...>;
(3) (C++26 起)
friend constexpr difference_type

    operator-( const /*iterator*/& x, const /*iterator*/& y )

        requires /*concat-is-random-access*/<Const, Views...>;
(4) (C++26 起)
friend constexpr difference_type

    operator-( const /*iterator*/& x, std::default_sentinel_t )

        requires /* 见描述 */;
(5) (C++26 起)
friend constexpr difference_type

    operator-( std::default_sentinel_t, const /*iterator*/& x )

        requires /* 见描述 */;
(6) (C++26 起)

增加或减少迭代器

1) 等价于:auto t = it; t += n; return t;
2) 等价于:return it + n;
3) 等价于:auto t = it; t -= n; return t;
4)ix 代表 x.it_.index() 并令 iy 代表 y.it_.index()
Before the call to this function x.it_.valueless_by_exception() and y.it_.valueless_by_exception() must each be false.否则,其行为未定义。
5) 等价于:return -(dx + s);,其中:
Fs 为由 Views 中除了首元素外所有元素组成的包。requires子句中的表达式等价于:
(std::sized_sentinel_for<
    ranges::sentinel_t<std::conditional_t<Const, const Views, Views>>,

    ranges::iterator_t<std::conditional_t<Const, const Views, Views>>> && ...) &&
(ranges::sized_range<std::conditional_t<Const, const Fs, Fs>> && ...)
调用这个函数之前,x.it_.valueless_by_exception() 必须为 false。否则,其行为未定义。
6) 等价于:return -(x - default_sentinel);
Fs 为由 Views 中除了首元素外所有元素组成的包。requires子句中的表达式等价于:
(std::sized_sentinel_for<
    ranges::sentinel_t<std::conditional_t<Const, const Views, Views>>,

    ranges::iterator_t<std::conditional_t<Const, const Views, Views>>> && ...) &&
(ranges::sized_range<std::conditional_t<Const, const Fs, Fs>> && ...)

这些函数对常规的无限定有限定查找不可见,而只能在 concat_view::iterator<Const> 为实参的关联类时由实参依赖查找找到。

参数

it, x, y - 迭代器
n - 相对于当前位置的位置

返回值

1,2) 增加后的迭代器
3) 减少后的迭代器
4) 给定迭代器之间的距离
5,6) 给定迭代器哨位之间的距离

示例

参阅

推进或减小底层迭代器
(公开成员函数)