文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C++标准库迭代器Iterator类型学习笔记

C++标准库迭代器Iterator类型学习笔记

时间:2011-04-25  来源:Crazyant_


      标准库为每一种标准容器(包括vector)定义了一种迭代器类型,迭代器类型提供了比下标操作用来遍历容器更通用的方法,所有的标准库容器都定义了相应的迭代器类型,但只有少数的容器(vector)定义了下标操作。

迭代器类型属于相应的标准库容器类型,例如定义了vector,就可以直接获取它的迭代器:

vector<int>::iterator iter;//定义了一个vector<int>类型的iterator

1、迭代器相关的一些操作

假设定义了vector<int> v和vector<int>::iterator iter

操作调用方式

操作说明

v.begin()

返回容器v的第一个元素对应的iterator

v.end()

返回容器v的最后一个元素后面位置的iterator

*iter

返回iter位置上的元素值

Iter++,iter--,iter+n,iter-n

迭代器可以进行数字运算,结果值要确定在范围内

==,!=

迭代器的相互比较

2、const_iterator和iterator

每种容器类型都定义了一个const_iterator类型,该类型只能读取容器的元素,不能改变其值。

const_iterato类型的对象citer,其自身值可变,比如citer++等,但是它指向的元素值无法改变,如*citer++,这是不允许的。

const_iter和const iter不同,前者自身可变,指向的元素不可变;后者指向固定的位置,位置上的信息可取可存。

3、迭代器的算术运算

迭代器的算术操作只适合一些少数的容器,例如vector,因为这些容器类似数组,能够快速定位。

       迭代器的算术操作:

Ø Iter+n和iter-n//迭代器计算

Ø Iter1 – iter2//迭代器想减

Ø Mid = v.begin() + v.size()/2;//直接计算

注:任何改变vector长度的操作,都会是已经存在的迭代器失效,例如vector进行了push_back,那么已存在的迭代器失效。

 

 

相关阅读 更多 +
排行榜 更多 +
城市英雄机甲救援手游

城市英雄机甲救援手游

动作格斗 下载
星战模拟器MOD内置菜单

星战模拟器MOD内置菜单

模拟经营 下载
解压盒下载包

解压盒下载包

休闲益智 下载