Qt工作筆記-QSort的基本使用
阿新 • • 發佈:2018-12-18
如下面這個程式碼:
#include <QCoreApplication> #include <QVector> #include <ctime> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QVector<QString> qStrVec; for(int i = 100000; i > 0; i--){ qStrVec << QString::number(i); } clock_t start, finish; double totalTime; start = clock(); qSort(qStrVec.begin(), qStrVec.end()); finish = clock(); totalTime = (double)(finish - start)/CLOCKS_PER_SEC; qDebug() << "using " + QString::number(totalTime,'f',6) + " Time"; return a.exec(); }
執行截圖如下:
雖然排序了,但並不是我想要的結果,呼叫他的第二個過載函式
改變程式碼:
#include <QCoreApplication> #include <QVector> #include <ctime> #include <QDebug> bool intThan(const QString &s1, const QString &s2) { return s1.toInt() < s2.toInt(); } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QVector<QString> qStrVec; for(int i = 100000; i > 0; i--){ qStrVec << QString::number(i); } clock_t start, finish; double totalTime; start = clock(); qSort(qStrVec.begin(), qStrVec.end(), intThan); finish = clock(); totalTime = (double)(finish - start)/CLOCKS_PER_SEC; qDebug() << "using " + QString::number(totalTime,'f',6) + " Time"; return a.exec(); }
執行截圖如下:
變數內容如下: