C++ 的STL中,迭代器那个指针为何++能指向下一个元素?

list<int>::iteratorp;然后把p给头指针,然后++就指向下一个元素。这是为何?连续的数组,那么++还能说通。不连续的链表,怎么也能++?... list<int>::iterator p;

然后把p 给头指针,然后++就指向下一个元素。这是为何?

连续的数组,那么++还能说通。

不连续的链表,怎么也能++ ?
展开
 我来答
匿名用户
推荐于2017-06-19
展开全部
这个是迭代器的特征,list通过实现迭代器从而可以实现迭代concept。具体请参考《Generic programming and the STL》一书(第一篇的第一章),STL作为一个基本完备的数据操作集,其设计理念和依据都非常抽象,想要理解有一定的难度,而且单单拿出一个组件是无法明白它单独所具有的意义的,因此要系统的学习。
但是如果你只要求会用即可的话,那么你可以把他当做语言规范或者特性记下来,迭代器在行为上就是模仿指针,但是结构上是在模仿线性表的访问方式。
wwylele
2014-08-19 · TA获得超过2523个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:1089万
展开全部
STL中的迭代器把“++”这个运算符重载了,也就是重新定义了“++”的行为,而且每个容器中的行为定义是不同的,这样在不同的容器中都可以移动到下一个元素
更多追问追答
追问
重载?你是说,iterator是一个类,而不是普通的指针类型变量?

因为你说++重载,那iterator他是一个类咯?
追答
iterator当然是一个类,只是因为重载了++,*等运算符,所以用起来像指针了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
编程大王
2017-06-18 · TA获得超过922个赞
知道小有建树答主
回答量:979
采纳率:51%
帮助的人:113万
展开全部
i++是根据每个数据大小+1,这样原理。明白?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑暗中的剑
2014-08-19 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:100万
展开全部
重载运算符?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式