标准库中迭代器的关系
分类:
输入迭代器(input iterator) < 前向迭代器(forward iterator)< 双向迭代器(bidirectional iterator)< 跳转迭代器(random access iterator)和 输出迭代器(output iterator)
继承关系如下
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag:public input_iterator_tag{};
struct bidirectional_iterator_tag :public forward_iterator_tag{};
struct random_access_iterator_tag :public bidirectional_iterator_tag{};
输入迭代器与前向迭代器的区别在于,前向迭代器可以保证若实例a与b满足a==b,则必++a==++b,而输入迭代器不能保证。
输入迭代器只能遍历一遍,但是前向迭代器可以保存迭代器的多个副本实现多次遍历。
双向迭代器故名思意,可以前后移动++,--。
跳转迭代器可以向前向后移动任意位置,+=n,-=n
输出迭代器也只能遍历一遍,移至下一个位置后,不能保证之前的迭代器有效。
本文来自博客园,作者:struggle_time,转载请注明原文链接:https://www.cnblogs.com/songliquan/p/4106516.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?