Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
friend constexpr /*iterator*/ operator + ( const /*iterator*/ & i,

difference_type n )

requires /*cartesian-product-is-random-access*/ < Const, First, Vs... > ;
(1) (C++23 起)
friend constexpr /*iterator*/ operator + ( difference_type n,

const /*iterator*/ & i )

requires /*cartesian-product-is-random-access*/ < Const, First, Vs... > ;
(2) (C++23 起)
friend constexpr /*iterator*/ operator - ( const /*iterator*/ & i,

difference_type n )

requires /*cartesian-product-is-random-access*/ < Const, First, Vs... > ;
(3) (C++23 起)
friend constexpr difference_type operator - ( const /*iterator*/ & i,

const /*iterator*/ & j )
requires

/*cartesian-is-sized-sentinel*/ < Const, iterator_t, First, Vs... > ;
(4) (C++23 起)
friend constexpr difference_type operator - ( const /*iterator*/ & i,

std:: default_sentinel_t )
requires

/*cartesian-is-sized-sentinel*/ < Const, ranges:: sentinel_t , First, Vs... > ;
(5) (C++23 起)
friend constexpr difference_type operator - ( std:: default_sentinel_t s,

const /*iterator*/ & i )
requires

/*cartesian-is-sized-sentinel*/ < Const, ranges:: sentinel_t , First, Vs... > ;
(6) (C++23 起)

执行 迭代器 运算或计算距离。

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

1) 等价于: return /*iterator*/ ( i ) + = n ;
2) 等价于: return i + n ;
3) 等价于: return /*iterator*/ ( i ) - = n ;
4) 等价于: return i. distance_from ( j. current_ ) ;
5) /*end-tuple*/ 为一个特化自 tuple 类型的对象,满足:
  • std :: get < 0 > ( /*end-tuple*/ ) 的值与 ranges:: end ( std :: get < 0 > ( i. parent_ - > bases_ ) ) ; 相同;
  • 对于每个整数 1 ≤ N ≤ sizeof... ( Vs ) std :: get < N > ( /*end-tuple*/ ) 的值与 ranges:: begin ( std :: get < N > ( i. parent_ - > bases_ ) ) 相同。
等效于: return i. distance_from ( /*end-tuple*/ ) ;
6) 等价于: return - ( i - s ) ;

这些函数对普通的 非限定查找 限定查找 不可见,仅当 cartesian_product_view:: iterator <Const> 作为参数的关联类时,才能通过 实参依赖查找 找到。

目录

参数

i, j - 迭代器
n - 相对于当前位置的偏移量
s - 哨兵

返回值

1,2) 递增后的迭代器。
3) 一个递减后的迭代器。
4) 给定迭代器之间的距离。
5,6) 给定迭代器与哨位之间的距离。

示例

参见

前进或回退底层迭代器
(公开成员函数)