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();

原创粉丝点击