目录
1. 迭代器介绍
本章并不研究不同类型的迭代器,只总结常见迭代器的使用和误区。

定义:迭代器(iterator)有时又称光标(cursor),是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍历的接口,设计人员无需关心容器对象的内存分配的实现细节。
背景:指针可以用来遍历存储空间连续的数据结构,但是对于非连续存储的数据结构,就需要一个行为类似于指针的类,来对非连续数据结构进行遍历。正如定义里标红所说,迭代器可以遍历非连续的数据结构。
在C++中,我们更倾向于使用迭代器而不是使用下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只有少数容器(如vector)支持下标操作访问容器元素。
2. 初始化
每种容器都定义了自己的迭代器类型,可以使用auto自动声明迭代器的类型,也可以显示的将迭代器类型写出来:
//只有顺序容器(不包括array)的构造函数才接受大小参数
vector<int> vec(num, val);
vector<int>::iterator it = vec.begin();
//auto it = vec.begin();
3. 常用操作
下面表格列出了迭代器的常用操作:
| *iter |
解引用,返回迭代器指向的元素的引用 |
| iter->member |
等效于(*iter).member |
| ++iter, iter++ |
iter + 1,指向容器的下一个元素 |
| –iter, iter– |
同上 |
| iter1 == iter2 |
比较两个迭代器是否相等 |
| iter1 != iter2 |
|
在C++定义的容器类型中,只有vector,string和queue容器提供迭代器算术运算和除!=和==之外的关系运算:
| iter + n, iter - n |
迭代器+或-一个常数,必须指向容器内或尾后元素(end()) |
| iter1 += iter2 |
同上 |
| iter1 -= iter2 |
同上 |
| iter1 - iter2 |
获得两个迭代器之间的距离 |
| >, >=, <, <= |
元素靠后的迭代器大于靠前的迭代器 |
注意:
迭代器并不是所有都可以进行加减常数。 能进行算数运算的迭代器只有随机访问迭代器。要求容器元素存储在连续空间内;即vector、string、deque的迭代器是有加减法的;但是list、forward_list、map、set的迭代器是没有加减法的,它们仅支持++iter、–iter这些操作。 it++和++it的区别
在STL中的容器使用迭代器进行遍历时,it++与++it的效果是相同的,遍历的次数也是相同的,但是在STL中效率却不同:
++it返回的是引用;it++返回的是临时对象;–it同理。
原因:it++每次都要返回一个无用的临时对象,所以每一次遍历,你都进行了一次创建并销毁对象的操作。(leetcode小本本记好了!)
总结
相关推荐:
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
SEO对策:提升网站排名与流量的必备策略,SEO入门相机平价学生
seo适用于什么领域,seo适用于什么领域中 ,ai智能翻译写作机器人v1.0
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲
AI免费工具:提升效率与创意的秘密武器
优化原理:提升效率、创新突破的核心法则,印刷包装推广有哪里网站
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
SEO工装裤-打造时尚与实用兼备的工作利器,ai画中国爸爸辅导孩子写作业
seo营销方法是什么,seo营销模式 ,ai山海
ChatGPT5.0为什么一直没出来?背后的技术与战略,元宵节ai趣赏月
OpenAI无法验证支付方式?解决方案与常见问题解析,你好月光ai
为什么要seo 运营,为什么需要seo ,ai人物头盔
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
打造内容创作新时代:有言AI生成助力创作者释放灵感
SEO动态:2025年SEO趋势与优化技巧解析,十堰外贸网站推广费用
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化
文章疑似AI生成怎么办?如何辨别并应对AI生成文章的挑战
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
AI通过算法和数据生成的作品:科技与艺术的跨越,带来无限创意可能,ai优化程序
SEO专业怎么样?未来发展的无限潜力与职业前景,联通ai智能早教
SEO公司核心业务是什么?揭秘提升网站排名的奥秘,写作助手ai一键生成作文在线
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
seo站内链接有什么作用,seo中网站内链的作用 ,781900ai
seo自己做什么,自己做seo需要花钱吗 ,ai850775
SEO外,如何提升网站整体营销效果?,文轩网络营销推广方案
ChatGPT使用问题?如果您正在使用VPN,请尝试将其关闭,ai制作渐变立体
ChatGPT页面无法翻阅?带你深度了解背后的原因与解决方案,pdf怎么转换ai文字
文字写作AI生成工具:让创作更简单、更高效
如何选择适合你的AI工具?全面解析AI工具哪个好用
seo的推广工具,seo推广软件哪个好 ,国内ai写作论文怎么样
SEO站在未来之巅,助力网站在激烈竞争中脱颖而出,推荐网站优化欢迎咨询
seo需要干什么,seo需要具备什么知识 ,ai梦境档案世岛大宅
SEO提高:如何通过精准优化让网站流量翻倍,优化排名seo加盟费用
中文润色:提升表达的艺术,打造无懈可击的语言魅力,广告营销推广新思路论文
OpenAI银联支付-未来支付新体验,安全便捷全新升级,医学加ai
SEO范例:如何通过优化提升网站流量,获取更多商机,广州抖音seo搜索广告
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
seo词库优化,搜索词条优化 ,ai点选择
SEO优化:如何让网站更具有吸引力,散文ai写作咒语是什么
AI提供的阅读书目对学生的专业知识有多大帮助,沃奇ai
AI代谢文章:从灵感到成果的创作革命
AI网页版本:开启智能时代的新篇章,拼音标调ai
seo需要什么器械,seo需要什么器械才能做 ,长续航ai纯电汽车
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
SEO目的:如何通过精准优化提高网站流量与转化率,百度推广网站关键词
SEO获取流量的必杀技:如何通过优化轻松提升网站排名,德州全网营销推广价格
亚马逊的seo是什么阿,亚马逊seo项目 ,中考用ai写作会判0分吗