跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

c++怎么清空一个vector_c++ vector清空方法

清空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方法。

相关文章