QList<T> 的释放分两种情况
来源:互联网 发布:微店和淘宝店哪个好 编辑:程序博客网 时间:2024/06/03 20:33
1.T的类型为非指针,这时候直接调用clear()方法就可以释放了
#include <QtCore/QCoreApplication>#include <QList>#include <QString>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); typedef struct _test { int id; QString name; QString sex; }Por_test; QList<Por_test> slist; for (int i=0;i<100000;i++) { Por_test s; s.id = 1; s.name = QString("hello World!"); s.sex = QString("男"); slist.append(s); } slist.clear(); return a.exec();}
2.T的类型为指针的情况,这时候直接调用clear()方法将不能释放
#include <QtCore/QCoreApplication>#include <QList>#include <QString>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); typedef struct _test { int id; QString name; QString sex; }Por_test; QList<Por_test *> slist; for (int i=0;i<100000;i++) { Por_test *s = new Por_test(); s->id = 1; s->name = QString("hello World!"); s->sex = QString("男?"); slist.append(s); } qDeleteAll(slist); slist.clear(); return a.exec();}
这里就要在clear()函数前使用qDeleteAll();