请问swap对迭代器有什么影响,《c++标准库 第二版》是这么说的“swap只是交换容器对象的若干指针,迭代器紧盯元素,swap后依然指向原来的元素”,我试了,确实,如果定义list::iterator iterA=listA.begin(), iterB = listA.end(),然后调用swap函数,我发现打印的还是迭代器原来指向的元素,但是他会一直循环打印,不能停下来,而且还多打印了一个不知道从哪来的数,这是我的代码
,这是执行的效果,然后我用gdb调试执行发现,在循环打印的时候iterA开始还是很正常的,自增导致iterA从1指向2,然后指向3,但是接下来iterA会自增到一个不是listA.end()的值,这就导致for循环不能结束,于是继续自增,结果iterA指向的地址有回到了1,下面是gdb调试的结果
,哪位大神能给我讲一下呀
C++中swap成员函数对迭代器的影响
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:C++数据结构之swap(一)
- 同时,你还可以查看手册:c++-成员函数 中的内容
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥35 平滑拟合曲线该如何生成
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 自己瞎改改,结果现在又运行不了了
- ¥15 链式存储应该如何解决
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站