Qt QVector数据清理和内存清理


原因

  在处理大数据时,发现QVector直接用clear后台查看程序所占用的内存并没有下降

QVector数据清理

1 QVector<int>example_vec; 2 example_veclear();

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



上一篇:ChatGPT 发送消息后无响应,三个办法教你解决

下一篇:Qt QTextStream 类(文本流)和 QDataStream 类(数据流)


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图