本文主要是介绍C++从零开始的打怪升级之路(day26),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是关于一个普通双非本科大一学生的C++的学习记录贴
在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料
那么开启正题
今天分享的是关于vector
1.迭代器失效
首先我们回顾迭代器的基本用法
void Test1()
{vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);vector<int>::iterator it = v.begin();while (it != v.end()){cout << *it << " ";++it;}cout << endl;
}
这样可以顺利遍历并输出vector中的数据,为了明白迭代器失效
我们来看下面的代码
void Test1()
{vector<int> v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);vector<int>::iterator it = v.begin();v.push_back(6);v.push_back(7);while (it != v.end()){cout << *it << " ";++it;}cout << endl;
}
乍一看好像没有任何问题,但是试着运行代码会发现程序报错,这是为什么呢
我们来回顾vector的插入数据,在容量不够的时候,会先增容,而增容会使迭代器原本指向的位置失去访问权限,这时再访问就会报错
新手写博客,有不对的位置希望大佬们能够指出,也谢谢大家能看到这里,让我们一起学习进步吧!!
这篇关于C++从零开始的打怪升级之路(day26)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!