vector空间重新配置后指向原vector的所有迭代器失效

来源:互联网 发布:近期网络流行语 编辑:程序博客网 时间:2024/05/28 04:54
对于下面这段话的理解,来自《STL源码剖析》第四章:

#include<vector>
#include<iostream>
usingnamespacestd;
voidmain()
{
     vector<int>ivec(2,9);
     cout<<"size="<<ivec.size()<<endl;
     cout<<"capacity="<<ivec.capacity()<<endl;
     vector<int>::iteratorbeg=ivec.begin();
     vector<int>::iteratorend=ivec.end();
     cout<<"begin="<<*beg<<endl;
     cout<<"end="<<*(end-1)<<endl;
     //空间重新配置,指向原vector的所有迭代器失效
     ivec.push_back(1);//引起空间重新配置
     cout<<"size="<<ivec.size()<<endl;
     cout<<"capacity="<<ivec.capacity()<<endl;
     cout<<"begin="<<*beg<<endl;//指向原vector的所有迭代器失效
     cout<<"end="<<*(end-1)<<endl;//指向原vector的所有迭代器失效
}
原创粉丝点击