为什么收缩空间?
vector<int> v;
for (int i = 0; i < 10000; i++) {
v.push_back(i);
}
cout << "size=" << v.size() << endl;
cout << "capacity=" << v.capacity() << endl;
cout << "-----------resize()------------" << endl;
v.resize(10);
cout << "size=" << v.size() << endl;
cout << "capacity=" << v.capacity() << endl;
结果:在resize(),之后只有10个元素,但是却占空间12138,非常浪费!
怎样收缩:
cout << "-----------swap()------------" << endl;
vector<int>(v).swap(v);//这里!
cout << "size=" << v.size() << endl;
cout << "capacity=" << v.capacity() << endl;
结果: