清空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();
这种方式也会清空内容并可能触发内存释放,行为类似于 swap 方法。
基本上就这些。日常使用 clear() 就够了;若需节省内存,推荐 clear() + shrink_to_fit() 或 swap 方法。
以上就是c++++怎么清空一个vector_c++ vector清空方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1478105.html
微信扫一扫
支付宝扫一扫