请教一个关于C++中向量的一个难以理解的问题
void main()
{
vector<int > a;
for(int i=0;i<3;i++)
a.push_back(i);
a.insert(a.begin(),a.back());
for(vector<int >::iterator it1=a.begin();it1!=a.end();it1++)
cout<<*it1<<" ";
cout<<"\n"<<endl;
a.insert(a.begin(),a.back());
for(vector<int >::iterator it2=a.begin();it2!=a.end();it2++)
cout<<*it2<<" ";
cout<<"\n"<<endl;
a.insert(a.begin(),a.back());
for(vector<int >::iterator it3=a.begin();it3!=a.end();it3++)
cout<<*it3<<" ";
}
这段代码的运行结果为什么会是
1 0 1 2
2 1 0 1 2
1 2 1 0 1 2
好难理解啊啊。。。
请教各位大神帮帮忙。。
小弟在这谢了。。。。。。。
[解决办法]
[解决办法]
[解决办法]
是不是变成你说的那个值不知道
楼主用法本身就有问题, 先重新分配大小,然后拷贝原来的值,拷贝完之后,释放旧空间。。。
造成 back()的值无意义, 然后此时再把 这个无意义的值insert到新空间里。。。。