c++ 容量回收机制
#include <iostream>
#include <vector>
int main(){
std::vector<int> vec(10, 10);
vec.clear();
// 立即回收容量机制
{
std::vector<int> empty_vec;
empty_vec.swap(vec);
std::cout << "After swap vec capacity : " << vec.capacity() << std::endl;
std::cout << "After swap empty_vec capacity : " << empty_vec.capacity() << std::endl;
}
return 0;
}
使用 reserve() 可以提前为向量分配足够的内存,减少内存重新分配的次数,提高性能。
std::vector<int> vec;
// 预留空间
vec.reserve(1000);
std::cout << "Capacity after reserve(1000): " << vec.capacity() << std::endl;
使用 shrink_to_fit() 可以请求收缩向量的容量以匹配其大小,释放多余的内存。
// 收缩容量
vec.shrink_to_fit();
std::cout << "Capacity after shrink_to_fit: " << vec.capacity() << std::endl;

浙公网安备 33010602011771号