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

在C++中清空一个 vector 容器,最常用且正确的方式是使用 clear() 成员函数。这个方法会移除容器中的所有元素,使容器变为空,同时保持其容量不变。
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
}
调用 clear() 并不会释放底层内存。如果希望同时释放内存,可以使用 swap 方法:
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.clear();
std::vector<int>().swap(vec); // 清空并释放内存
这行代码创建了一个临时的空 vector,然后与原 vector 交换内容。原 vector 变为空且释放内存,临时 vector 在语句结束后被销毁。
立即学习“C++免费学习笔记(深入)”;
另一种简洁的方式是直接赋值一个空的 vector:
vec = std::vector<int>(); // 将 vec 替换为一个空 vector
或更现代的写法:
vec = {}; // 等价于赋值空初始化列表
这种方式也会触发析构和内存释放,效果类似于 swap 方法。
基本上就这些。日常使用 clear() 就够了;若需立即释放内存,配合 swap 或赋值空对象即可。不复杂但容易忽略细节。
以上就是c++++中如何清空一个vector_c++清空vector容器的正确方式的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号