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

清空C++ vector最常用方法是clear(),它使size变为0但不释放内存;若需释放内存,可使用shrink_to_fit()、swap技巧或赋值为空vector。

c++怎么清空一个vector_c++ 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();

这种方式也会清空内容并可能触发内存释放,行为类似于 swap 方法。

基本上就这些。日常使用 clear() 就够了;若需节省内存,推荐 clear() + shrink_to_fit()swap 方法。

以上就是c++++怎么清空一个vector_c++ vector清空方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1478105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 02:38:06
下一篇 2025年12月18日 18:57:38

相关推荐

发表回复

登录后才能评论
关注微信