栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

迭代器(iterator)简介

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

迭代器(iterator)简介

含义

qquad 迭代器的作用是用来访问容器中的元素,可以理解为广义上的指针。类比于指针,我们使用指针访问数组,那么对于数组来说指针就是一种迭代器。

qquad 但是在C++中有许多复杂的容器,例如vector、string、list、map等,对于这些不同的容器,我们都会使用为其量身打造的迭代器。对比于指针,不同容器的迭代器的功能更多。
qquad

迭代器的使用

qquad 对于所有的迭代器,他们的使用方法和指针一样

//例如
vector a;
vector::iterator it;
it++; 	//得到指向下一个元素的迭代器
*it;	//解引用获得所指元素的值
it=a.begin();   //开始位置的迭代器
it=a.end();		//束位置的迭代器
for(auto it = a.begin();it!=a.end();it++)
	cout << *it;
	
for(auto i:a)  //此时的i不是迭代器!是具体的值
	cout << i;

,自增操作 i++ 得到指向下一个元素的迭代器,解引用 *i 获得迭代器 i 所指元素的值。
qquad 大部分的容器type中都会提供成员函数type.begin(),用来获取容器开始位置的迭代器,会提供成员函数type.end(),用来获取容器结束位置的迭代器。
qquad 注意:迭代器这种类型不可以比较大小!可以赋值,判断是否相等。所以遍历的时候终结条件应该是 it!=end();

其他操作
vector::iterator it=a.begin();

auto n=next(it,-1);		//返回迭代器it的第n个后继迭代器
auto p=prev(it,-1);		//返回迭代器it的第n个前驱迭代器
cout<<*n<<*p;

next(it,n); :返回迭代器第n个后继迭代器,n为负数时则反方向
prev(it,-1);:返回迭代器it的第n个前驱迭代器,n为负数时则反方向

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/879437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号