qDeleteAll专门用于指针容器,只能用于释放容器元素内存,也就是对容器中每个对象执行delete,但并没有置空或者说移除也就是size没变,所以必须clear。比如QList、QMap等。

test类继续延用6中的test类。

#include <QCoreApplication>
#include "test.h"
typedef QList<Test*> testList;testList getList()
{testList list;for(int i  = 0; i < 5; i++){list.append(new Test());list.last()->setObjectName("Test " + QString::number(i));}return list;
}void display(testList list)
{foreach(Test* item, list){qInfo() << item;}
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);testList list = getList();display(list);qInfo() << "Deleting...";qDeleteAll(list); //qDeleteAll(list.begin(),list.end());qInfo() << "list.size="<<list.size();list.clear();qInfo() << "list.size="<<list.size();display(list);return a.exec();
}

根据打印可以看出,在执行qDeleteAll后,析构函数开始执行,但是执行完之后,size仍然是5,必须clear之后,size变为0.

7-Qt6 qDeleteAll内存管理相关推荐

  1. jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理

    准备步骤: 1.安装java环境,知道java安装目录 2.将jar包拖放或发送至服务器中(目录自定义) 一.编写shell脚本,将以下代码放在shell脚本中,将shell脚本放在jar包同级目录下 ...

  2. 垃圾回收 内存管理 python

    20220225 https://mp.weixin.qq.com/s/94SmSNEkwmz-Eu-hBUo0Lg Python的内存管理机制 在windows 中直接在任务管理其中关掉python ...

  3. BEP 7:CUDA外部内存管理插件(下)

    BEP 7:CUDA外部内存管理插件(下) Numba依赖 向库中添加EMM插件的实现自然会使Numba成为库的依赖项,而以前可能没有.为了使依赖关系可选,如果需要的话,可以有条件地实例化并注册EMM ...

  4. BEP 7:CUDA外部内存管理插件(上)

    BEP 7:CUDA外部内存管理插件(上) 背景和目标 在CUDA阵列接口使得能够共享不同的Python之间的数据库的访问CUDA设备.但是,每个库都与其它库区别对待.例如: • Numba在内部管理 ...

  5. Objective C内存管理之理解autorelease------面试题

    Objective C内存管理之理解autorelease Autorelease实际上只是把对release的调用延迟了,对于每一个Autorelease,系统只是把该Object放入了当前的Aut ...

  6. 操作系统--内存管理方式

    "碎片的内存"描述一个系统中所有不可用的空闲内存.这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用.这一问题通常都会发生,原因在于空闲内存以小而不连续方式出 ...

  7. python基于值得内存_为什么说Python采用的是基于值的内存管理模式

    匿名用户 1级 2018-01-31 回答 先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 (3)内存池机制 一.垃圾回收: python不像C++, ...

  8. linux内核 -内存管理模块概图

    1.从进程(task)的角度来看内存管理 每个进程对应一个task_struct; 每个task_struct 里面包含指向mm_struct 的指针mm, mm_struct 里面的主要成员: a. ...

  9. linux内存管理 之 内存节点和内存分区(Zone)

    https://www.cnblogs.com/youngerchina/p/5624516.html Linux支持多种硬件体系结构,因此Linux必须采用通用的方法来描述内存,以方便对内存进行管理 ...

最新文章

  1. centos 查找nginx_centos7 nginx安装/启动/进程状态/杀掉进程
  2. 【转】解决svn Authorization failed错误
  3. html5控制符置于底层,HTML5占位符在焦点上消失
  4. python模拟上传多张图片
  5. 测试服务器IO和网速的脚本
  6. PRML-系列一之1.6
  7. Visual Studio Code——待补充
  8. WIN2008下找不到proxy的处理方法
  9. android intent 跳转activity,Activity 跳转 都知道用startActivity(Intent)
  10. [Ext JS] Grid 的复选框行选择之——某些行不能选取
  11. css中的 font 与 font-size
  12. nginx负载均衡算法
  13. 【期刊会议系列】IEEE系列模板下载指南
  14. 软件质量属性:可用性
  15. win10蓝牙怎么开_摩托罗拉对讲机蓝牙写频方法
  16. win10系统迁移后系统重装_win10系统迁移超简单!详细步骤解析
  17. 专访CAPA梁振宇:信息无障碍是互联网产品的必选项
  18. 某金融企业核心存储POC测试及选型经验
  19. 『Java CVE』CVE-2022-33980: Apache Commons Configuration 读文件RCE
  20. ASP.NET与HTML的关系理解

热门文章

  1. 启用轻资产、重运营、降杠杆,红星美凯龙能否瘦成“家得宝”?
  2. 服务器手工修改虚拟内存,服务器修改虚拟内存
  3. Mysql sequence使用_MySQL 序列使用_mysql sequence_mysql auto increment
  4. 北卡教堂山计算机科学专业,UNC的CS「北卡罗来纳大学教堂山分校计算机科学系」...
  5. java点到曲线的距离公式,使用Haversine的距离公式获取经度和纬度的距离
  6. java的默认_java默认包的使用
  7. 陕西师范大学计算机科学学院公寓楼,陕西师范大学计算机科学学院简介
  8. Python必备知识点:对Json的基本使用方法
  9. 30秒内便能学会的30个超实用Python代码片段
  10. resoult在python啥意思,python - __lt__而不是__cmp__