名稱空間
變體
操作

std::ranges::join_with_view<V,Pattern>::iterator

來自 cppreference.com
 
 
範圍庫 (Ranges library)
範圍介面卡 (Range adaptors)
 
 
template< bool Const >
class /*iterator*/
(僅作說明*)

ranges::join_with_view<V, Pattern>::iteratorranges::join_with_view<V, Pattern>begin()end() 返回的迭代器型別。

此類的迭代器狀態透過兩個巢狀迭代器進行管理:

  • 一個指向父範圍 *parent_ 的“外部迭代器”

此迭代器類有一個不變式:內部迭代器始終可解引用,除非外部迭代器不可解引用。當迭代器構造、遞增或遞減時,其外部迭代器可能會被調整以保持不變式。

目錄

[編輯] 模板引數

Const - 迭代器是否為常量迭代器

[編輯] 巢狀型別

僅用於說明的型別
型別 定義
Parent maybe-const <Const, ranges::join_with_view<V, Pattern>>
(僅供說明的成員型別*)
Base maybe-const <Const, V>
(僅供說明的成員型別*)
InnerBase ranges::range_reference_t<Base >
(僅供說明的成員型別*)
PatternBase maybe-const <Const, Pattern>
(僅供說明的成員型別*)
OuterIter ranges::iterator_t<Base >
(僅供說明的成員型別*)
InnerIter ranges::iterator_t<InnerBase >
(僅供說明的成員型別*)
PatternIter ranges::iterator_t<PatternBase >
(僅供說明的成員型別*)
迭代器屬性型別
型別 定義
iterator_concept 一個 迭代器標籤見下文
iterator_category
(有條件存在)
一個迭代器標籤,見下文
value_type

std::common_type_t<ranges::range_value_t<InnerBase >,
                   ranges::range_value_t<PatternBase >>

difference_type

std::common_type_t<ranges::range_difference_t<Base >,
                   ranges::range_difference_t<InnerBase >,
                   ranges::range_difference_t<PatternBase >>

[編輯] 確定迭代器概念

iterator_concept 定義如下:

[編輯] 確定迭代器類別

給定以下型別

iterator_category 的定義當且僅當 std::is_reference_v<InnerBase >true,並且 BaseInnerBase 各自建模 forward_range。在這種情況下,它定義如下:

[編輯] 資料成員

成員 描述
Parent * parent_ 指向父級 join_with_view 的指標
(僅用於闡釋的成員物件*)
OuterIter outer_it_
(僅當 Base 建模 forward_range 時存在)
外部迭代器
(僅用於闡釋的成員物件*)
std::variant<PatternIter , InnerIter > inner_it_ 內部迭代器
(僅用於闡釋的成員物件*)

[編輯] 成員函式

構造一個迭代器
(公開成員函式)
訪問元素
(公開成員函式)
前進或後退底層迭代器
(public member function) [編輯]

[編輯] 非成員函式

比較底層迭代器
(函式)
(C++23)
將底層迭代器解引用的結果轉換為其關聯的右值引用型別
(函式)
(C++23)
交換兩個底層迭代器指向的物件
(函式)