码迷,mamicode.com
首页 > 其他好文 > 详细

std::vector::iterator失效性分析

时间:2019-04-14 20:38:29      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:断点   vpd   插入   proc   back   ext   -o   pos   1.5   

#include<vector> void vectest() { std::vector<int> vi; for (int i = 1; i < 10; ++i) { vi.push_back(i); } //std::vector<decltype(vi.begin())> iter_vector; std::vector<std::vector<int>::iterator> iter_vector; for (auto it = vi.begin(); it != vi.end(); ++it) { iter_vector.push_back(it); } auto pos = vi.begin(); pos++; std::vector<int>::iterator ret; ret = vi.insert(pos, 21); //此处加断点 pos = vi.begin(); pos++; ret = vi.emplace(pos, 12); } int main() { vectest(); return 0; }

断点语句执行前:
技术图片

断点语句执行后:
技术图片

可以看出,vector插入一个元素后,之前的所有迭代器全部失效!包括插入点之前的迭代器也失效!

std::vector::iterator失效性分析

标签:断点   vpd   插入   proc   back   ext   -o   pos   1.5   

原文地址:https://blog.51cto.com/frankniefaquan/2378519

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!