除了使用下标访问string对象的字符或者vector对象的元素,还可以通过迭代器来实现相同的目的。
使用迭代器
迭代器运算符
将迭代器从一个元素移动到另外一个元素
迭代器使用递增运算符(++)来从一个元素移动到下一个元素。
注意:因为end返回的迭代器并不实际只是某个元素,所以不能对其进行递增或解引用的操作。
关键概念:泛型编程,所有标准库容器都定义了==和!=。
迭代器类型
itreator和const_iterator表示迭代器的类型。【类似于int 和const int,,,】
begin 和end运算符
C++11新标准下引入两个新函数,cbegin 和cend ,与begin和end不同,不管vector对象本身是否是常量,返回值都是const_iterator;
结合解引用和成员访问操作
(*it).empty; //解引用,然后调用结果对象的empty成员
某些对vector对象的操作会使迭代器失效
限制1:不能在范围for循环中向vector对象添加元素。
限制2:限制任何一种可能改变vector对象容量的操作,例如push_back,会使vector对象的迭代器失效。
谨记:但凡是使用了迭代器的循环体,都不要想迭代器所属的容器添加元素。
迭代器运算
迭代器的算术运算
使用迭代器运算
二分搜索法