迭代器的分类
上面是基本的容器,根据不同容器的特性的区别,迭代器iterator根据访问的特性可以分为 五大类:
- 最基本的是:random_access_iterator,这种随机访问证明是可以在iterator上实现随机跳转(+n).例如对于array,vector,deque这三种。虽然stack和queue是封装了deque,但是C++是不给stack和queue提供迭代器。
- 在随机访问的基础上,定义了双向的iterator,这种双向的iterator可以++、–,对于list(双向链表),hash_table(底层的拉链是双向链表),set/multiset/map/multimap底层是红黑树,因此也应该是双向访问。
- 在双向的iterator上,存在单向的iterator,也就是只能单向移动的iterator,例如forward-list.
- 还存在两种特殊的iterator:input和output。
两种特殊的迭代器的声明。