njukakaxi level
获赞
133
粉丝
8
关注
0
看过 TA
41
南京大学
2019
C++
IP属地:未知
暂未填写个人简介
私信
关注
2018-10-04 20:33
已编辑
南京大学 C++
vector 删除其中一个迭代器后,因后面数据移动,导致迭代器全部失效。有如下情况,一个迭代器指向其尾部元素,然后像后面添加元素(假定此时capacity>size),按理说迭代器不该失效,毕竟内存没有改变,但是VS17依然失效,求解释? vector<int> vec; vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.push_back(4); vec.push_back(5); vec.push_back(6); vec.push_back(7);...
牛客第一菜狗:这个在vs2017-release模式(O2优化)下面根本没触发迭代器失效的。。。 你那个原因应该是在debug模式下,capacity是和size同步增长的,每次push_back都重新分配内存。这样最保险,因为这种***作确实有可能触发迭代器失效,所以debug模式用了最保险起见的办法保证一定触发。查看图片
0 点赞 评论 收藏
分享
2018-09-14 20:12
已编辑
南京大学 C++
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务