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

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


 
 
范围库
范围适配器
 
std::ranges::chunk_view
成员函数
input_range
推导指引
outer-iterator
outer-iterator::value_type
inner-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 ranges::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 ranges::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 ranges::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) 迭代器与哨位之间的距离(以元素数量为单位)

示例

参阅

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