什么是迭代器???


迭代器是一种算法么? 它的实现原理是什么?
...全文
129 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kelijian 2012-05-25
  • 打赏
  • 举报
回复
是在STL中用来将算法和容器联系起来,起到粘合剂的作用。
cattycat 2010-04-21
  • 打赏
  • 举报
回复
迭代器是对容器的遍历操作封装的类,可以对不同的容器都有不同的迭代器。想深入了解的话,可以看stl方面的书。
  • 打赏
  • 举报
回复
顶上去
wade_2003 2010-04-20
  • 打赏
  • 举报
回复
看看C++ primer 第三版第六章6.5节
迭代器iterator提供了一种一般化的方法对顺序或关联容器类型中的每个元
连续访问例如假设iter为任意容器类型的一个iterator则
++iter;
向前移动迭代器使其指向容器的下一个元素而
*iter;
返回iterator指向元素的值
每种容器类型都提供一个begin()和一个end()成员函数
begin()返回一个iterator它指向容器的第一个元素
end()返回一个iterator它指向容器的末元素的下一个位置
为了迭代任意容器类型的元素我们可以这样写
for(iter=container.begin();
iter!=container.end();++iter)
do_something_with_element(*iter);
东大坡居士 2010-04-20
  • 打赏
  • 举报
回复
这个看JAVA语言很好理解的,还可以看看设计模式,里面有一个迭代器模式,就是讲这个
huanmie_09 2010-04-20
  • 打赏
  • 举报
回复
看看c++ primer第十一章。
十八道胡同 2010-04-20
  • 打赏
  • 举报
回复
pengzhixi 2010-04-20
  • 打赏
  • 举报
回复
想弄清楚的话看STL源码剖析
十八道胡同 2010-04-20
  • 打赏
  • 举报
回复
迭代器是一种对象,它能够用来遍历STL容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些行为上象迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,它可以把抽象容器和通用算法有机的统一起来。
  迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和C/C++“操作array元素”时的指针接口一致。不同之处在于,迭代器是个所谓的smart pointers,具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此,每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义于内部。因此各种迭代器的接口相同,型别却不同。这直接导出了泛型程序设计的概念:所有操作行为都使用相同接口,虽然它们的型别不同。


http://baike.baidu.com/view/925158.htm?fr=ala0_1_1
昵称很不好取 2010-04-20
  • 打赏
  • 举报
回复
可以看成是对指针的封装~~
用来遍历容器之类
google吧

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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