《STL源码剖析》STL迭代器分类
- input迭代器:只能向前移动,一次一步,用户只能读取,不能修改它们所指向的东西,而且只能读取一次。
- output迭代器情况类似,但一切只为输出:它们只能向前移动,一次一步,用户只可以修改它们所指向的东西,而且只能涂写一次。
- forward迭代器:可做前两种迭代器所做的每一件事情,而且可执行多次读或者写多次。
- Bidrectional迭代器:除了可以向前移动,还可以向后移动,STL的list迭代器就是着一种。
- Random Access迭代器:这种迭代器比上一个迭代器更强大的地方在于它可以执行“迭代器算数”,也就是它可以在常量时间内向前跳跃或者向后跳跃n个距离,这样的算数类似于指针算数,那并不令人惊讶,因为random asccess迭代器也是以内置指针为榜样,而内置指针也可当作random access迭代器使用,vector,deque和string提供的迭代器都是这一分类。
https://github.com/li-zheng-hao