std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: next , std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: prev , std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: distance_from
目录 |
std::ranges::cartesian_product_view:: iterator :: next
|
template
<
std::
size_t
N
=
sizeof...
(
Vs
)
>
constexpr void /*next*/ ( ) ; |
(C++23 起)
( 仅用于说明* ) |
|
若以默认模板参数调用,则递归生成
cartesian_product_view
中的下一个元素(迭代器的元组)。
令
current_
表示底层的迭代器元组。等价于:
auto& it = std::get<N>(current_); ++it; if constexpr (N > 0) { if (it == ranges::end(std::get<N>(parent_->bases_))) { it = ranges::begin(std::get<N>(parent_->bases_)); next<N - 1>(); } }
用于以下非静态成员函数:
-
ranges
::
cartesian_product_view
::
operator+
std::ranges::cartesian_product_view:: iterator :: prev
|
template
<
std::
size_t
N
=
sizeof...
(
Vs
)
>
constexpr void /*prev*/ ( ) ; |
(since C++23)
( exposition only* ) |
|
若使用默认模板参数调用,则递归生成
cartesian_product_view
中的前一个元素(迭代器元组)。
令
current_
表示底层的迭代器元组。等价于:
auto& it = std::get<N>(current_); if constexpr (N > 0) { if (it == ranges::begin(std::get<N>(parent_->bases_))) { it = /*cartesian-common-arg-end*/(std::get<N>(parent_->bases_)); prev<N - 1>(); } } --it;
用于以下非静态成员函数:
-
ranges
::
cartesian_product_view
::
operator-
std::ranges::cartesian_product_view:: iterator :: distance_from
|
template
<
class
Tuple
>
constexpr
difference_type
|
(C++23 起)
( 仅用于说明* ) |
|
返回两个 迭代器 之间的“距离”(即“步进”次数)。
令:
-
parent_为指向cartesian_product_view的底层指针 -
/*scaled-size*/
(
N
)
为:
- 若 N ≤ sizeof... ( Vs ) ,则为 static_cast < difference_type > ( ranges:: size ( std :: get < N > ( parent_ - > bases_ ) ) ) 与 /*scaled-size*/ ( N + 1 ) 的乘积,否则
- static_cast < difference_type > ( 1 ) ;
- /*scaled-distance*/ ( N ) 为 static_cast < difference_type > ( std :: get < N > ( current_ ) - std :: get < N > ( t ) ) 与 /*scaled-size*/ ( N + 1 ) ; 的乘积
- /*scaled-sum*/ 为对所有整数 0 ≤ N ≤ sizeof... ( Vs ) 的 /*scaled-distance*/ ( N ) 求和
返回值: /*scaled-sum*/ 。
若
/*scaled-sum*/
无法被
difference_type
表示,则行为未定义。
用于以下函数:
-
operator-( const /*iterator*/ & , const /*iterator*/ & ) -
operator-( const /*iterator*/ & , std:: default_sentinel_t )
参数
| t | - | 要计算距离的迭代器元组 |