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
來自 cppreference.com
< cpp | ranges | cartesian product view | iterator
目錄 |
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*/(); |
(C++23 起) (僅作說明*) |
|
如果使用預設模板引數呼叫,則遞迴生成 `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 | - | 用於查詢距離的迭代器元組 |