社区
C++ 语言
帖子详情
iterator
zhouqing19871024
2008-10-12 04:52:57
vector<int>::iterator iter=vec.begin(); 其中的iter到底是指向向量vec中首元素的指针还是就是一个普通的变量啊 ??
...全文
138
18
打赏
收藏
iterator
vector::iterator iter=vec.begin(); 其中的iter到底是指向向量vec中首元素的指针还是就是一个普通的变量啊 ??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
insulted
2008-10-14
打赏
举报
回复
学习!
dss0204
2008-10-12
打赏
举报
回复
iterator 象指针但是绝对不是指针
vs2005之后 iterator it = NULL; 编译已经不能通过了
使用的时候和指针类似
它也有自己的成员,准确的说是一个结构,可以看看stl源码
n_yHHy_n
2008-10-12
打赏
举报
回复
迭代器,类似于指针
elegant87
2008-10-12
打赏
举报
回复
[Quote=引用 1 楼 wuyu637 的回复:]
iter一个普通的变量, 初始化是指向向量vec中首元素的指针
你也可以改变他的值。
iter++;
这个时候他就不是指向首元素的指针了
[/Quote]
itertor 是个迭代器类型!
blueskywind6
2008-10-12
打赏
举报
回复
迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址值。例如,一个数组索引,也可以认为是一种迭代器。
迭代器有各种不同的创建方法。程序可能把迭代器作为一个变量创建。一个STL容器类可能为了使用一个特定类型的数据而创建一个迭代器。作为指针,必须能够使用*操作符类获取数据。你还可以使用其他数学操作符如++。典型的,++操作符用来递增迭代器,以访问容器中的下一个对象。如果迭代器到达了容器中的最后一个元素的后面,则迭代器变成past-the-end值。使用一个past-the-end值得指针来访问对象是非法的,就好像使用NULL或为初始化的指针一样。
jia_xiaoxin
2008-10-12
打赏
举报
回复
一般来说iterator是一个"轻量级"的对象,你可以把它想象成一个指针,但不要把它当成一个指针,因为首先你不能用类型转换把它转换成一个指针,
在vector容器的内部它的实现就是一个指针,
list的iterator是__list_iterator的typedef。__list_iterator是定义list iterator的class, 所以iterator不是pointer,它只是一个object,iterator的*、->、++、--都是operator overloading做出來的,而不是pointer本身的操作。
OxC0000005
2008-10-12
打赏
举报
回复
http://topic.csdn.net/u/20081012/18/2920e43f-cb4c-4c3a-b89d-81fd5f8f2e90.html
mars_man
2008-10-12
打赏
举报
回复
你只能把它当成一个位置引用,因为具体怎么搞的谁也没有规定,只规定了怎么用
大写的池
2008-10-12
打赏
举报
回复
iterator 是一个类
chlaws
2008-10-12
打赏
举报
回复
你要不知道就当它是指针吧 ,这样容易理解些
yshuise
2008-10-12
打赏
举报
回复
vector迭代器不是类,其他的,list ,map 等都是。
fibbery
2008-10-12
打赏
举报
回复
星羽
2008-10-12
打赏
举报
回复
iter 只是一个类的实例,具体里面是怎么实现迭代的,和不同的迭代器有关
建议你看看c++ primer
chenzhp
2008-10-12
打赏
举报
回复
指向首元素的指针
kkndciapp
2008-10-12
打赏
举报
回复
iter是个指针一样,它可以指向其他值
zhouqing19871024
2008-10-12
打赏
举报
回复
晕了 怎么会都有 呢 ??????
yshuise
2008-10-12
打赏
举报
回复
[Quote=引用楼主 zhouqing19871024 的帖子:]
vector <int>::iterator iter=vec.begin(); 其中的iter到底是指向向量vec中首元素的指针还是就是一个普通的变量啊 ??
[/Quote]
都有
wuyu637
2008-10-12
打赏
举报
回复
iter一个普通的变量, 初始化是指向向量vec中首元素的指针
你也可以改变他的值。
iter++;
这个时候他就不是指向首元素的指针了
【Tensorflow】Dataset 中的
Iterator
本文深入探讨Tensorflow中Dataset和
Iterator
的关系,包括单次
Iterator
、可初始化
Iterator
、可重新初始化
Iterator
和可馈送
Iterator
的用法。重点讲解了
Iterator
如何在不同场景下灵活处理数据,满足参数化、数据源切换和动态feeding的需求。
iterator
与const_
iterator
博客介绍了C++标准库容器的迭代器类型,包括
iterator
和const_
iterator
的作用、区别。指出
iterator
可修改元素值,const_
iterator
不可。还给出了使用下标操作和迭代器遍历vector对象并将单词转化为小写字母的代码示例,展示了迭代器在访问容器元素上的应用。
Iterator
使用于List等集合
本文介绍了Java中的
Iterator
设计模式,用于遍历序列中的对象,特别是List类型的集合。详细阐述了
Iterator
的主要方法,如
iterator
()、next()、hasNext()和remove()。通过示例展示了如何在List中使用
Iterator
进行元素的遍历和删除,强调了在循环中删除元素时,必须使用
Iterator
而不是foreach的原因。
const
iterator
和 const_
iterator
的区别
本文围绕const
iterator
和const_
iterator
展开,探讨了正确书写迭代器的效果,分析了用const
iterator
替代const_
iterator
的不同表现,介绍了C++中const的修饰规则,即其位置决定修饰对象,最后解释了const
iterator
不能替代const_
iterator
的原因,是因const修饰规则所致。
经常忘记
iterator
的使用,贴上源码方便回忆
本文深入探讨了迭代器标准头文件的实现细节,包括back_insert_
iterator
、front_insert_
iterator
、insert_
iterator
、move_
iterator
、istream_
iterator
、ostream_
iterator
和checked_array_
iterator
等类的功能与用法。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章