对于下面这段话的理解,来自《STL源码剖析》第四章:
#include
<vector>
#include
<iostream>
using
namespace
std;
void
main()
{
vector<int>
ivec(2,9);
cout<<"size="<<ivec.size()<<endl;
cout<<"capacity="<<ivec.capacity()<<endl;
vector<int>::iterator
beg
=
ivec.begin();
vector<int>::iterator
end
=
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的所有迭代器失效
}