最常用清空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++免费学习笔记(深入)”;
赋值空 vector(C++11 起推荐)
另一种简洁的方式是直接赋值一个空的 vector:
vec = std::vector<int>(); // 将 vec 替换为一个空 vector
或更现代的写法:
vec = {}; // 等价于赋值空初始化列表
这种方式也会触发析构和内存释放,效果类似于 swap 方法。
基本上就这些。日常使用 clear() 就够了;若需立即释放内存,配合 swap 或赋值空对象即可。不复杂但容易忽略细节。


