QList 的释放分两种情况:
1.T的类型为非指针,这时候直接调用clear()方法就可以释放了,看如下测试代码
#include#include#include
intmain(intargc, char*argv[]){ QCoreApplication a(argc, argv); typedef struct_test{ intid; QString name; QString sex; }Por_test; QList<Por_test> slist; for(inti=0;i<100000;i++) { Por_test s; s.id= 1; s.name= QString("hello World!"); s.sex= QString("男"); slist.append(s); } slist.clear(); returna.exec();}
将上面代码中的slist.clear();
注释掉,内存显示为如下(任务管理器里的截图)
如不去掉的话,内存显示如下图
2.T的类型为指针的情况,这时候直接调用clear()方法将不能释放,先看代码
#include#include#includeintmain(intargc, char*argv[]){ QCoreApplication a(argc, argv); typedef struct_test{ intid; QString name; QString sex; }Por_t