清空vector最常用clear()方法,它使容器变为空但不释放内存;若需释放内存,可用swap技巧或赋值空vector实现。

在C++中清空一个vector容器,最常用且正确的方法是使用其成员函数clear()。这个方法会移除容器中的所有元素,使vector变为空,但不会释放其底层内存。
使用 clear() 方法清空 vector
clear() 是 std::vector 提供的成员函数,调用后会使容器大小变为0,但容量(capacity)可能保持不变。
示例代码:
std::vector
vec.clear(); // 清空所有元素
此时 vec.size() 为 0,但 vec.capacity() 可能仍保留之前的值。
立即学习“C++免费学习笔记(深入)”;
彻底释放内存:使用 swap 技巧
如果希望在清空的同时释放内存,可以使用与空vector交换的方式:
std::vector
vec.swap(temp);
或者更简洁地写成:
std::vector
这种方式会创建一个临时的空vector,通过swap交换内容,原数据会被销毁,从而真正释放内存。
使用赋值操作清空
也可以通过赋值一个空的vector来达到清空效果:
vec = std::vector
或 C++11 起支持的写法:
vec = {};
这两种方式同样可以清空容器并有机会释放内存,具体行为依赖于编译器实现和优化。
基本上就这些。日常使用 clear() 就足够了;若需立即释放内存,配合 swap 技巧更有效。


