std::experimental::ranges::ForwardIterator
< cpp | experimental | ranges
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
这被称为多趟保证。
注意
向前迭代器不能“贮藏”:它不能返回到其自身内对象的引用,因为向前迭代器的析构会非法化这种引用。