C++ 容器缩小容量
以vector为例
- vector在扩容后容量是无法自动缩小的
- resize()方法只能缩小size属性
- 这时要重新产生一个小数组,并用swap()与原数组交换
代码
#include <iostream>
#include <vector>
int main(void) {
std::vector<int> v(100);
for (int i = 0; i < 100; ++i) {
v[i] = i;
}
std::cout << v.capacity() << std::endl;
v.resize(5);
std::vector<int>(v).swap(v);
std::cout << v.capacity() << std::endl;
return 0;
}