最常用清空vector的方法是clear(),它移除所有元素并置大小为0但不释放内存;若需释放内存,可使用swap技巧或赋值空vector,如vec = {}。

在C++中清空一个 vector 容器,最常用且正确的方式是使用 clear() 成员函数。这个方法会移除容器中的所有元素,使容器变为空,同时保持其容量不变。
使用 clear() 清空 vector
clear() 会调用每个元素的析构函数(对类类型而言),然后将容器大小设为0。
示例代码:
#include <vector>
#include <iostream>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.clear(); // 清空所有元素
std::cout << "Size after clear: " << vec.size() << std::endl; // 输出 0
}
释放内存:使用 swap 技巧
调用 clear() 并不会释放底层内存。如果希望同时释放内存,可以使用 swap 方法:
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.clear();
std::vector<int>().swap(vec); // 清空并释放内存
这行代码创建了一个临时的空 vector,然后与原 vector 交换内容。原 vector 变为空且释放内存,临时 vector 在语句结束后被销毁。
立即学习“C++免费学习笔记(深入)”;

智谱清影
74
智谱清影是智谱AI最新推出的一款AI视频生成工具
74
查看详情
赋值空 vector(C++11 起推荐)
另一种简洁的方式是直接赋值一个空的 vector:
vec = std::vector<int>(); // 将 vec 替换为一个空 vector
或更现代的写法:
vec = {}; // 等价于赋值空初始化列表
这种方式也会触发析构和内存释放,效果类似于 swap 方法。
基本上就这些。日常使用 clear() 就够了;若需立即释放内存,配合 swap 或赋值空对象即可。不复杂但容易忽略细节。
相关标签:
c++ ai ios stream 成员函数 析构函数 对象
大家都在看:
C++怎么解决菱形继承问题_C++虚继承机制详解及菱形继承解决方法
c++怎么自定义类的拷贝构造函数和赋值运算符_c++类拷贝构造与赋值运算符实现方法
c++如何连接两个字符串_c++字符串拼接多种实现方法
c++中如何读取文本文件的内容_c++文件读取操作的常见方法总结
c++如何使用正则表达式_c++正则regex库使用教程
c++怎么自定义类的拷贝构造函数和赋值运算符_c++类拷贝构造与赋值运算符实现方法
c++如何连接两个字符串_c++字符串拼接多种实现方法
c++中如何读取文本文件的内容_c++文件读取操作的常见方法总结
c++如何使用正则表达式_c++正则regex库使用教程
本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
































暂无评论内容