TIMANDDAY 2019-05-13 13:22 采纳率: 0%
浏览 296

C++中swap成员函数对迭代器的影响

请问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调试的结果图片说明
图片说明
,哪位大神能给我讲一下呀

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 21:35
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 链接问题 C++LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接