- #include "widget.h"
- #include "ui_widget.h"
- #include <QDebug>
- #include <time.h>
- #include <QMessageBox>
- #include <QTimer>
- #include <QTime>
- Widget::Widget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::Widget)
- {
- ui->setupUi(this);
- this->setWindowTitle("CSDN IT1995");
- qint64 data=100000000;
- for(qint64 i=0;i<30000;i++){
- m_myVec.append(new VecData(data,"这个是 name"));
- m_myMap.insert(data,new VecData(data,"这个是 name"));
- for(int j=0;j<100;j++){
- m_myVec[i]->m_list.append(new MyData("10000","20000","30000"));
- (*m_myMap.find(data))->m_list.append(new MyData("10000","20000","30000"));
- }
- data++;
- }
- qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));
- for(int i=0;i<5000;i++){
- m_num[i]=qrand()%100000+100000000;
- }
- connect(ui->vectorPushButton,&QPushButton::clicked,this,&Widget::vectorBtnClicked);
- connect(ui->mapPushButton,&QPushButton::clicked,this,&Widget::mapBtnClicked);
- }
- Widget::~Widget()
- {
- delete ui;
- }
- void Widget::vectorBtnClicked(){
- clock_t start,finish;
- double totaltime;
- start=clock();
- for(int i=0;i<5000;i++){
- for(int j=0;j<m_myVec.size();j++){
- if(m_num[i]==m_myVec[j]->m_num){
- qDebug()<<"Value:"<<m_myVec[j]->m_num;
- break;
- }
- }
- }
- finish=clock();
- totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
- qDebug()<<"此程序的运行时间为"<<totaltime<<"秒!";
- QMessageBox::information(this,"提示","使用了"+QString::number(totaltime,'f',5)+"秒");
- }
- void Widget::mapBtnClicked(){
- clock_t start,finish;
- double totaltime;
- start=clock();
- for(int i=0;i<5000;i++){
- qDebug()<<"Value:"<<(*m_myMap.find(m_num[i]))->m_num;
- }
- finish=clock();
- totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
- qDebug()<<"\n 此程序的运行时间为"<<totaltime<<"秒!";
- QMessageBox::information(this,"提示","使用了"+QString::number(totaltime,'f',5)+"秒");
- }
- main.cpp
来源: http://www.bubuko.com/infodetail-3044448.html