C++中的STL为什么需要 迭代器啊?

liuxingxxx 2010-08-10 05:16:30
我是个STL的菜鸟,面试的时候被问, 对容器的操作加“*”也能有同样效果,为什么还需要迭代器啊?
请大家给出迭代器的 具体优点! 拜谢。
...全文
361 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhongke007 2010-08-10
  • 打赏
  • 举报
回复
刚刚学到STL,来学习了。
GodPointer 2010-08-10
  • 打赏
  • 举报
回复
学习了,
fallening 2010-08-10
  • 打赏
  • 举报
回复
将容器和算法的耦合解开
ccmfk 2010-08-10
  • 打赏
  • 举报
回复
为了抽象和统一吧
cattycat 2010-08-10
  • 打赏
  • 举报
回复
起个适配器的作用,而且隐藏容器的实现,对所有的容器基本遍历方式是一样的。而且算法实现时用迭代器就不关心容器的类型了。正是泛型设计的目的。
dahai9825 2010-08-10
  • 打赏
  • 举报
回复
主要适配算法的
elegant87 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yujixi123 的回复:]

C++的设计思想之一就是尽量屏蔽指针 对指针的封装——iteraotr能达到这个目的 再者 iterator还是container与algorithm的桥梁 仅仅依靠C的指针是达不到这个功能的
[/Quote]
容器和算法的桥梁,连接起来
很方便访问容器的元素和操作
qq120848369 2010-08-10
  • 打赏
  • 举报
回复
同意,封装指针,而且为了算法.
hengshan 2010-08-10
  • 打赏
  • 举报
回复
1、通过迭代器访问容器,可以避免许多错误,可以隐藏容器的具体实现
2、迭代器是stl一个规范,只要算法和容器都遵循这个规范,那么就可以实现数据结构和算法的分离
3、迭代器本身有很多自身的有点,可以弥补c++语言的不足。比如它的iterator_category,可以得到迭代器所指向的型别,这样可以根据不同的型别的特性,提供不同的算法
zmshy2128 2010-08-10
  • 打赏
  • 举报
回复
容器 迭代器 算法 是 STL的三大利器

迭代器就是连接 容器和算法的桥梁。
cd2108006026 2010-08-10
  • 打赏
  • 举报
回复
迭代器是对指针的抽象;

它的存在,也是为了搭起STL容器和STL算法之间的桥梁。

算法对容器一无所知,它只操作容器的迭代器,间接的操作了容器
liutengfeigo 2010-08-10
  • 打赏
  • 举报
回复
很深奥~
yujixi123 2010-08-10
  • 打赏
  • 举报
回复
C++的设计思想之一就是尽量屏蔽指针 对指针的封装——iteraotr能达到这个目的 再者 iterator还是container与algorithm的桥梁 仅仅依靠C的指针是达不到这个功能的
healer_kx 2010-08-10
  • 打赏
  • 举报
回复
抽象。
maosher 2010-08-10
  • 打赏
  • 举报
回复
模板模板

抽象为元素的游标
xixiaoliu 2010-08-10
  • 打赏
  • 举报
回复
如果要取出 list 的第 10 个元素,你用什么样的方式?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧