双向迭代器与随机迭代器
双向迭代器是在单向迭代器的基础上增加了一个反向操作,就是它既可以前进,又可以后退,因此它比单向迭代器新增一个功能,进行自减操作,例如it--或者--it。
随机访问迭代器在双向迭代器的基础上,又支持直接将迭代器向前或向后移动n个元素,而且还支持比较运算的操作,因此随机访问迭代器的功能几乎和指针一样,可以进行如下操作:
it1 += n; //将迭代器it1向下移动n个元素
it1 -= n; //将迭代器it1向上移动n个元素
it1 + n; //获得指向迭代器it1向下第n个元素的迭代器
it1 – n; //获得指向迭代器it1向上第n个元素的迭代器
it1 – it2; //求算两个迭代器之间有多少个元素
it1 op it2; //op指比较运算符,如<、<=、>、>=,用于比较两个迭代器的位置先后关系
it1[n]; //等价于*(it1+n);
在前面学习容器时,学习过的begin()与end()函数返回的就是随机访问迭代器,指针也是随机访问迭代器。