清空C++ vector最常用方法是clear(),它使size变为0但不释放内存;若需释放内存,可使用shrink_to_fit()、swap技巧或赋值为空vector。
清空一个 C++vector的最常用方法是使用clear()函数。这个函数会移除 vector 中的所有元素,使其大小变为 0,但不会释放其内部缓冲区的内存。
1. 使用 clear() 方法
这是最直接的方式:
vec.clear();—— 删除所有元素,size 变为 0。
示例代码:
std::vector vec = {1, 2, 3, 4, 5};vec.clear(); // 此时 vec.size() 为 0 2. 清空并释放内存( shrink_to_fit )
调用 clear() 后,vector 的容量(capacity)可能仍然保留之前的值。如果希望同时释放内存,可以配合使用shrink_to_fit():vec.clear();vec.shrink_to_fit(); // 请求释放未使用的内存注意:shrink_to_fit 是一个非强制请求,标准库不保证一定会缩容,但在大多数实现中(如 GCC、MSVC)都会生效。
3. 使用 swap 技巧(传统方法)
在 C++11 之前,常用 swap 来强制释放内存:std::vector ().swap(vec); // 创建空临时 vector 并与 vec 交换这会立即释放 vec 的所有内存,是一种更彻底的清空方式。
4. 赋值为空 vector(C++11 起新写法)
也可以直接赋值一个空的初始化列表:vec = {};或vec = std::vector ();C函数速查手册(CHM版)
C函数速查手册(CHM版)
下载这种方式也会清空内容并可能触发内存释放,行为类似于 swap 方法。
基本上就这些。日常使用clear()就够了;若需节省内存,推荐clear() + shrink_to_fit()或swap方法。
