最常用的方法是调用clear()函数,它会移除所有元素使size变为0,但capacity不变,不释放底层内存,时间复杂度为O(n),例如vec.clear()后容器为空但容量保留。
在C++中,清空一个 vector 容器最常用的方法是使用其成员函数 clear()。这个函数会移除容器中的所有元素,使 vector 变为空,同时保持其容量(capacity)不变。
使用 clear() 函数清空 vector
clear() 是最直接的方式,调用后 vector 的大小(size)变为 0,但底层内存可能仍然保留。
- 不会释放已分配的内存(容量可能不变)
- 时间复杂度为 O(n),因为要析构每个元素
示例代码:
vector
vec.clear(); // 清空所有元素
cout
彻底释放内存:使用 swap 技巧
如果希望在清空的同时释放 vector 占用的内存,可以和一个空 vector 交换。
立即学习“C++免费学习笔记(深入)”;
- 创建一个空的临时 vector
- 与原 vector 调用 swap,原 vector 变为空并释放内存
示例代码:
vector
vector
赋值空 vector(C++11 起推荐)
更简洁的方式是直接赋值一个空的初始化列表。
vec = {}; // 等价于清空
// 或者:
vec = vector
这种方式也会触发析构和内存释放,效果类似于 swap 方法。
基本上就这些方法。日常使用 clear() 就够了;若需立即释放内存,推荐 vec = {} 或 swap 技巧。