返回信息流网上说迭代器是广义指针,大家怎么理解呢?另外,在32位机器上sizeof(int *)和sizeof(vector<int>::iterator)的结果都是4,看来他们存放的都是地址,那到底有什么区别呢?C++中使用迭代器有哪些易错的地方呢?
问题有点多,望得到大牛指点,谢谢
这是一条镜像帖。来源:北邮人论坛 / cpp / #78487同步于 2014/4/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
C++中迭代器和指针的差别
Smutty
2014/4/17镜像同步17 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
真不是……只是一个对象,提供了++方法转移到下一个,也提供了*方法获得当前值。装得和指针很像,让人用起来有在使用指针的感觉。但里面真不一定是指针,尽管你看到的那个迭代器的大小碰巧和指针一样。
感谢暖大神的回复。那使用迭代器比指针的优势在哪呢?
【 在 nuanyangyang 的大作中提到: 】
: 真不是……只是一个对象,提供了++方法转移到下一个,也提供了*方法获得当前值。装得和指针很像,让人用起来有在使用指针的感觉。但里面真不一定是指针,尽管你看到的那个迭代器的大小碰巧和指针一样。
【 在 Smutty 的大作中提到: 】
: 感谢暖大神的回复。那使用迭代器比指针的优势在哪呢?
有些事情不能用指针做吧。比如前序遍历一颗二叉树,要保存好多状态。
装得和指针很像,迭代器躺枪
【 在 nuanyangyang 的大作中提到: 】
: 真不是……只是一个对象,提供了++方法转移到下一个,也提供了*方法获得当前值。装得和指针很像,让人用起来有在使用指针的感觉。但里面真不一定是指针,尽管你看到的那个迭代器的大小碰巧和指针一样。
。。。迭代器不是容器里的么
【 在 Smutty (Future_Smutty) 的大作中提到: 】
: 网上说迭代器是广义指针,大家怎么理解呢?另外,在32位机器上sizeof(int *)和sizeof(vector<int>::iterator)的结果都是4,看来他们存放的都是地址,那到底有什么区别呢?C++中使用迭代器有哪些易错的地方呢?
: 问题有点多,望得到大牛指点,谢谢
通过『我邮2.0』发布