清空std::vector最常用clear()方法,可使容器size变为0;对于嵌套vector同样适用;若需释放内存,可调用shrink_to_fit()或使用swap交换法确保内存回收。

在C++中,清空一个std::vector(包括嵌套的vector
1. 使用 clear() 方法清空 vector
clear()会移除容器中的所有元素,使容器变为空,即size()变为0。
对于普通vector:
vectorvec.push_back(1);
vec.push_back(2);
vec.clear(); // 此时vec为空
对于二维vector(vector of vector):
立即学习“C++免费学习笔记(深入)”;
vectormatrix.push_back({1, 2, 3});
matrix.push_back({4, 5});
matrix.clear(); // 清空所有行和元素
2. 清空后释放内存(可选)
调用clear()并不会保证释放内部占用的内存空间。如果需要真正释放内存,可以配合shrink_to_fit()使用:
matrix.clear();matrix.shrink_to_fit(); // 请求释放多余容量
注意:shrink_to_fit()是请求操作,不保证一定成功,具体取决于编译器实现。
3. 快速清空并重置(交换法)
另一种经典方式是与一个空vector交换,能确保释放内存:
vector这种方法利用了临时对象的析构机制,常用于需要立即回收内存的场景。
基本上就这些。对大多数情况,直接用clear()就够了。如果关心内存占用,再考虑结合shrink_to_fit()或swap技巧。











