c++ vector insert问题! 为什么一用insert就出错?

源程序如下,能帮我找下错误吗
#include<iostream>
#include<vector>
using namespace std;
class A
{
public:
int a;
A(int aa){a=aa;}
void print(){cout<<a<<endl;}
};
int main()
{
vector<A> v;
vector<A>::iterator p=v.begin();
A aaa(4);
A bb(6);
v.push_back(aaa);
v.push_back(aaa);
v.push_back(aaa);
v.push_back(aaa);
p++;
p++;
v.insert(p,bb);
for(int i=0;i<5;i++)
v[i].print();
}
能加上vector的各个函数用法的详细解释的话更好,感激不尽!

慕田峪7331174
浏览 1466回答 2
2回答

狐的传说

vector<A>::iterator p=v.begin(); //这个时候v是empty,p是空的A aaa(4);A bb(6);v.push_back(aaa);v.push_back(aaa);v.push_back(aaa);v.push_back(aaa); //运行到这里p依然是空的!p=v.begin(); //p在这里重新赋值就可以了……用法是对的,只是你的逻辑出了错误
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Unity 3D