版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012020854/article/details/69525470
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTime>
typedef struct{
QString text;
QString id;
QString value;
}TestData;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void initList();
private:
Ui::MainWindow *ui;
QTime _time;
QTime _time1;
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
initList();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::initList()
{
QList<TestData*>list1,list;
int retTime1 = 0;
int retTime = 0;
for(long i=0;i<1000000;++i)
{
TestData*t = new TestData;
t->id = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
t->text = "222222222222222222222222222222222222222222222222222222111111111111111111111111111111111111111111";
t->value = "33333333333333333333333333333333333333333333333333333333333333333111111111111111111111111111111111111111111";
list.append(t);
TestData*t1 = new TestData;
t1->id = "111111111111111111111111111111111111111111111111111111111111111111111111111111111111";
t1->text = "222222222222222222222222222222222222222222222222222222111111111111111111111111111111111111111111";
t1->value = "33333333333333333333333333333333333333333333333333333333333333333111111111111111111111111111111111111111111";
list1.append(t1);
}
//====第一种析构===(目前最快感觉快在foreach)=========================
_time.start();
foreach(TestData*/*auto*/ var,list){
delete var;
}
list.clear();
retTime = _time.elapsed();
qDebug()<<"retTime:0:"<<retTime;
//=====第二种析构====(不知道是否慢在take上)==================================
_time1.start();
while(!list1.isEmpty()){
delete list1.takeFirst();
}
retTime1 = _time1.elapsed();
qDebug()<<"retTime1:1:"<<retTime1;
//==============================================
}