名稱空間
變體
操作

std::experimental::ranges::ForwardIterator

來自 cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
迭代器庫
迭代器概念
間接可呼叫概念
                                                  
                                                  
                                                  
常用演算法要求
                                                  
概念工具
迭代器工具與操作
迭代器特徵
迭代器介面卡
流迭代器
 
定義於標頭檔案 <experimental/ranges/iterator>
template< class I >

concept bool ForwardIterator =
    InputIterator<I> &&
    DerivedFrom<ranges::iterator_category_t<I>, ranges::forward_iterator_tag> &&
    Incrementable<I> &&

    Sentinel<I, I>;
(範圍 TS)

概念 ForwardIterator<I> 透過增加相等比較和多趟保證來完善 InputIterator

前向迭代器的 == 的定義域是針對同一底層序列的迭代器,但相同型別的值初始化迭代器可以相互比較且應比較相等。

從前向迭代器獲得到範圍 [is) 的指標和引用必須保持有效,只要 [is) 持續表示一個範圍。

ab 為型別 I 的兩個可解引用迭代器。ForwardIterator<I> 僅在以下情況滿足:

  • a == b 蘊含 ++a == ++b;且
  • 表示式 ([](X x){ ++x; }(a), *a) 等價於 *a,即,遞增 a 的副本對解引用 a 的結果沒有影響。

這被稱為*多趟保證*。

[編輯] 注意

前向迭代器不能是“隱藏式”的:它不能返回指向其內部物件的引用,因為這樣的引用會因前向迭代器的銷燬而失效。