ForwardIterator
C++概念:前馈
阿ForwardIterator
是Iterator
它可以从指向元素读取数据。
不像InputIterator
和OutputIterator
,可用于多通算法。
所需
类型It
满足ForwardIterator
如果。
- 类型
It
满足InputIterator
- 类型
It
满足DefaultConstructible
- 对象的类型。
It
提供多通保证
如下所述
- 类型std::iterator_traits<It>::reference一定是
T&
如果It
满足OutputIterator
%28It
是可变的%29
const T&
否则%28It
不变%29,
%28T表示的类型。std::iterator_traits<It>::value_type%29
- 对于相同的底层序列和自C++14%29以来的值初始化-迭代器%28,对所有迭代器定义相等和不等式比较。还有,给予。
i
,可解引用型迭代器It
- reference,表示的类型std::iterator_traits<It>::reference
下列表达式必须有效并具有指定的效果。
Expression | Return type | Equivalent expression | Notes |
---|---|---|---|
i++ | It | It ip=i; ++i; return ip; | |
*i++ | reference | | |
阿mutable ForwardIterator
是ForwardIterator
,它还能满足OutputIterator
所需经费。
多通保证
给出a
和b
、类型的可解引用迭代器It
...
- 如果
a
和b
比较相等%28a == b
在上下文上可转换为true
%29,则两者都是不可撤销的,或*a
和*b
是绑定到同一个对象的引用吗?
- 通过可变的分配
ForwardIterator
迭代器不能使迭代器%28隐式无效,原因是reference
定义为真实引用%29
- 递增
a
不更改读取的值。a
%28It
是原始指针类型或表达式。(void)++It(a), *a
与表达式等效。*a
%29
a == b
暗示++a == ++b
Singular iterators A value-initialized ForwardIterator behaves like the past-the-end iterator of some unspecified empty container: it compares equal to all value-initialized ForwardIterators of the same type. | (since C++14) |
---|
另见
- Iterator库
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。