std::experimental::ranges::ForwardIterator
來自 cppreference.com
< cpp | experimental | ranges
| 定義於標頭檔案 <experimental/ranges/iterator> |
||
| template< class I > concept bool ForwardIterator = |
(範圍 TS) | |
概念 ForwardIterator<I> 透過增加相等比較和多趟保證來完善 InputIterator。
前向迭代器的 == 的定義域是針對同一底層序列的迭代器,但相同型別的值初始化迭代器可以相互比較且應比較相等。
從前向迭代器獲得到範圍 [i, s) 的指標和引用必須保持有效,只要 [i, s) 持續表示一個範圍。
令 a 和 b 為型別 I 的兩個可解引用迭代器。ForwardIterator<I> 僅在以下情況滿足:
- a == b 蘊含 ++a == ++b;且
- 表示式 ([](X x){ ++x; }(a), *a) 等價於 *a,即,遞增
a的副本對解引用a的結果沒有影響。
這被稱為*多趟保證*。
[編輯] 注意
前向迭代器不能是“隱藏式”的:它不能返回指向其內部物件的引用,因為這樣的引用會因前向迭代器的銷燬而失效。