容器 | 迭代器类型 |
vector | 随机存取 |
deque | 随机存取 |
set | 双向,元素为常量 |
multiset | 双向,元素为常量 |
list | 双向 |
map | 双向,key为常量 |
multimap | 双向,key为常量 |
string | 随机存取 |
常见的几种迭代器
1.输入迭代器:只能读不能写,而且只支持++自增运算,在每个遍历的地方只能读取一次。istream_iterator为常见的输入迭代器
2.输出迭代器:只能写不能读,而且只支持++自增运算,在每个遍历的地方只能读取一次。ostream_iteratpr为常见的输出迭代器
3.前向迭代器:提供读和写操作,但只能使用++来遍历容器,也就是容器每次向前移动一个元素。总是按相同的顺序遍历容器的 值。泛型算法replace需要使用前向迭代器。
4.const迭代器:每种容器都定义了const_iterator,只能读取容器的值,不能修改所指向容器范围内元素的值。const_iterator与const 类型的iterator是有区别的
5.随机访问迭代器:string,vector,deque需要使用随机访问迭代器,sort算法也需要使用随机访问迭代器
6.双向迭代器:从两个方向读取容器,除了上述五种需要使用之外还有reverse也需要使用双向迭代器