Namespaces
Variants

std::ranges::cartesian_product_view<First, Vs...>::iterator<Const>::operator++,--,+=,-=

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
 
constexpr /*iterator*/& operator++();
(1) (自 C++23)
constexpr void operator++( int );
(2) (自 C++23)
constexpr /*iterator*/ operator++( int )
    requires ranges::forward_range</*maybe-const*/<Const, First>>;
(3) (自 C++23)
constexpr /*iterator*/& operator--()
    requires /*cartesian-product-is-bidirectional*/<Const, First, Vs...>;
(4) (自 C++23)
constexpr /*iterator*/ operator--( int )
    requires /*cartesian-product-is-bidirectional*/<Const, First, Vs...>;
(5) (自 C++23)
constexpr /*iterator*/& operator+=( difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(6) (自 C++23)
constexpr /*iterator*/& operator-=( difference_type n )
    requires /*cartesian-product-is-random-access*/<Const, First, Vs...>;
(7) (自 C++23)

递增或递减 iterator。

令 current_ 表示底层迭代器元组,parent_ 表示指向 cartesian_product_view 的底层指针。

1) 等同于 next(); return *this;
2) 等同于 ++*this;
3) 等同于 auto tmp = *this; ++*this; return tmp;
4) 等同于 prev(); return *this;
5) 等同于 auto tmp = *this; --*this; return tmp;
6) 将 *this 的值设置为 ret,其中 ret 是:
  • 如果 n > 0,则值为 *this,前提是 next 已被调用 n 次。否则,
  • 如果 n < 0,则值为 *this,前提是 prev 已被调用 -n 次。否则,
  • 为调用前 *this 的值。
如果 n 不在范围 [ranges::distance(*this, ranges::begin(*parent_)), ranges::distance(*this, ranges::end(*parent_))) 内,则行为未定义。
7) 等同于 *this += -n; return *this;。

参数

n - 相对于当前位置的偏移量

返回值

1,4,6,7) * this
2) (无)
3,5) 在更改前创建的 * this 的副本。

复杂度

6) 常量。

示例

参见

执行迭代器算术运算
(函数)