当你定义一个vector后,一定要在容器相关操作全部完成之后在再定义迭代器,否则假如你在容器相关操作未结束前就定义迭代器的话,就会导致程序运行出错。
错误代码:
#include<iostream>
#include<map>
#include<vector>
using namespace std;
int main()
{
vector<int> a;
a.push_back(3);
a.push_back(8);
vector<int>::iterator v=a.begin();
a.insert(a.begin(),3,10);
while(v!=a.end())
cout<<*v++<<" ";
a.pop_back();
return 0;}
错误运行结果(Devc++)
但是假如将迭代器的位置更正,就恢复正常了。
#include<iostream>
#include<map>
#include<vector>
using namespace std;
int main()
{
vector<int> a;
a.push_back(3);
a.push_back(8);
a.insert(a.begin(),3,10);
vector<int>::iterator v=a.begin();
while(v!=a.end())
cout<<*v++<<" ";
a.pop_back();
return 0;}
以后使用迭代器时要特别小心他的位置问题,很可能就是因为位置问题导致出错!