1 InputIterator 可以被用来读取容器中的元素但是不保证支持向容器的写入操作
InputIterator 必须提供下列最小支持提供其他支持的iterator 也可被用作InputIterator 只要
它们满足这个最小要求集两个iterator 的相等和不相等测试通过operator ++ 的前置和
后置实例向前递增iterator 指向下一个元素通过解引用操作符operator * 读取一个元素
求在这个层次上提供支持的泛型算法包括find() accumulate()和equal() 任何一个算法如果
要求InputIterator 那么我们也可以向其传递第3 4 5 项列出的iterator 类别中的任一个
即:只要某个类实现上面的操作既可以被认为是InputIterator。
2 OutputIterator 可以被认为是与InputIterator 功能相反的iterator 即它可以被用来向容
器写入元素但是不保证支持读取容器的内容OutputIterator 一般被用作算法的第三个实参
标记出起始写入的位置例如copy()取OutputIterator 作为第三个实参任何一个算法如果
要求OutputIterator 那么我们也可以向其传递第3 4 5 项列出的iterator 类别中的任一个
注意:这个迭代器似乎仅仅实现了赋值操作即可
3 ForwardIterator 可以被用来以某一个遍历方向是的下一个类别支持双向遍历向
容器读或写有些泛型算法至少要求ForwardIterator 包括adjacent_find() swap_range()和
replace() 当然任何要求ForwardIterator 支持的算法都可以向其传递第4 和5 项定义的iterator
类别
注意:这个迭代器既符合InputIterator又符合OutputIterator,同样下面两个也是这样。支持operator++操作
4 BidirectionalIterator 从两个方向读或写一个容器有些泛型算法至少要求
BidirectionalIterator 包括inplace_merge() next_permutation()和reverse()
注意:继承1,2,3的特性,并且支持operator--操作
5 RandomAccessIterator 除了支持BidirectionalIterator 所有的功能之外还提供了在
常数时间内访问容器的任意位置的支持要求RandomAccessIterator 支持的泛型算法包括
binary_search() sort_heap()和nth_element()
注意:继承1,2,3的特性,并且符合随机访问策略,即支持operator[]操作
![](http://www.cppblog.com/shootingstars/aggbug/26264.html)
InputIterator 必须提供下列最小支持提供其他支持的iterator 也可被用作InputIterator 只要
它们满足这个最小要求集两个iterator 的相等和不相等测试通过operator ++ 的前置和
后置实例向前递增iterator 指向下一个元素通过解引用操作符operator * 读取一个元素
求在这个层次上提供支持的泛型算法包括find() accumulate()和equal() 任何一个算法如果
要求InputIterator 那么我们也可以向其传递第3 4 5 项列出的iterator 类别中的任一个
即:只要某个类实现上面的操作既可以被认为是InputIterator。
2 OutputIterator 可以被认为是与InputIterator 功能相反的iterator 即它可以被用来向容
器写入元素但是不保证支持读取容器的内容OutputIterator 一般被用作算法的第三个实参
标记出起始写入的位置例如copy()取OutputIterator 作为第三个实参任何一个算法如果
要求OutputIterator 那么我们也可以向其传递第3 4 5 项列出的iterator 类别中的任一个
注意:这个迭代器似乎仅仅实现了赋值操作即可
3 ForwardIterator 可以被用来以某一个遍历方向是的下一个类别支持双向遍历向
容器读或写有些泛型算法至少要求ForwardIterator 包括adjacent_find() swap_range()和
replace() 当然任何要求ForwardIterator 支持的算法都可以向其传递第4 和5 项定义的iterator
类别
注意:这个迭代器既符合InputIterator又符合OutputIterator,同样下面两个也是这样。支持operator++操作
4 BidirectionalIterator 从两个方向读或写一个容器有些泛型算法至少要求
BidirectionalIterator 包括inplace_merge() next_permutation()和reverse()
注意:继承1,2,3的特性,并且支持operator--操作
5 RandomAccessIterator 除了支持BidirectionalIterator 所有的功能之外还提供了在
常数时间内访问容器的任意位置的支持要求RandomAccessIterator 支持的泛型算法包括
binary_search() sort_heap()和nth_element()
注意:继承1,2,3的特性,并且符合随机访问策略,即支持operator[]操作
shootingstars 2007-06-13 18:35 发表评论