C++中的迭代器

  除了使用下标访问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对象的迭代器失效。

谨记:但凡是使用了迭代器的循环体,都不要想迭代器所属的容器添加元素。

 

迭代器运算

  

 

迭代器的算术运算

  

  

使用迭代器运算

  二分搜索法

 

posted @ 2019-03-20 22:12  Stephen_A  阅读(1595)  评论(0编辑  收藏  举报