原因
在处理大数据时,发现QVector直接用clear后台查看程序所占用的内存并没有下降
QVector数据清理
1 QVector<int>example_vec; 2 example_vec.clear();
QVector内存清理
1 QVector<int>example_vec; 2 example_vec.shrink_to_fit(); //程序运行到此处时内存才被降下去
QVector另外一种清空方式
QVector().swap(a):清空一个 QVector 对象 a 的内容
- 具体解释:QVector 是 Qt 框架提供的一个动态数组容器类,用于存储和操作元素的集合。通过调用 swap() 函数,可以交换两个容器的内容,包括其中存储的元素。在这个特定的用法中,QVector() 创建了一个匿名的空 QVector 对象。然后,通过调用 swap(a),将这个空的 QVector 对象与 a 进行内容交换。由于交换后匿名的空 QVector 对象没有任何元素,因此实际上就达到了清空 a 的目的。
- 好处:通过交换而不是逐个删除元素,可以更高效地清空 QVector 对象。在交换过程中,swap() 函数只需要交换指针,而不需要逐个删除元素,因此速度更快。
- 注意的是,swap() 操作会改变对象的内容,因此在执行 swap() 后,a 将成为空的 QVector 对象。
例程:
1 #include <QVector> 2 #include <QString> 3 #include <QDebug> 4 5 int main() 6 { 7 QVector<QString> a; 8 a.append("Item 1"); 9 a.append("Item 2"); 10 a.append("Item 3"); 11 12 qDebug() << "原始 QVector a 的内容:" << a; 13 14 QVector<QString>().swap(a); 15 16 qDebug() << "清空后的 QVector a 的内容:" << a; 17 18 return 0; 19 }
标签:Qt,QVector,清理,内存,vec,清空,swap From: https://www.cnblogs.com/ybqjymy/p/18054634