C++STL之unordered_map与QT的QHash对比

时间:2024-11-25 15:06:49

刚刚心血来潮,试一试QT和STL哪个好

C++STL之unordered_map与QT的QHash对比

网上评论都支持STL,我试了试:

C++STL之unordered_map与QT的QHash对比

 贴上代码:

 #include <QCoreApplication>
 #include <QHash>
 #include <QDebug>
 #include <time.h>

 QHash<QString,int> val;

 void pmap(QString a)
 {
     qDebug() << a << ':' << val[a] << '\n';
 }

 int main(int argc, char *argv[])
 {
     QCoreApplication a(argc, argv);

     val.insert();
     val.insert();
     val.insert();
     val.insert();
     val[;
     pmap("很伤心");
     pmap("很崇拜");
     pmap("贼牛逼");
     pmap("叫爸爸");
     pmap("爸");
     pmap("吧");
     qDebug()<<'\n'<<clock();
     return a.exec();
 }

接下来STL,我用的是VS2019:

C++STL之unordered_map与QT的QHash对比

看到了吗?

多长志气!!

贴上VS的代码:

 #include <iostream>
 #include <unordered_map>
 #include <time.h>
 using namespace std;
 typedef pair<string, int> p;
 unordered_map<string, int> val;
 auto pmap(string a)
 {
      cout << a << ':' << val[a] << endl;
 }
 int main()
 {
     val.insert(p());
     val.insert(p());
     val.insert(p());
     val.insert(p());
     val[;
     pmap("很伤心");
     pmap("很崇拜");
     pmap("贼牛逼");
     pmap("叫爸爸");
     pmap("爸");
     pmap("吧");
     cout << clock();
 }

如果把unordered_map改成map的话,就是2毫秒:

C++STL之unordered_map与QT的QHash对比

 STL毕竟是标准,比QT要好一点吧.

代码:

#include <iostream>
#include <map>
#include <time.h>
using namespace std;
typedef pair<string, int> p;
map<string, int> val;
auto pmap(string a)
{
     cout << a << ':' << val[a] << endl;
}
int main()
{
    val.insert(p("很伤心",555));
    val.insert(p("很崇拜",666));
    val.insert(p("贼牛逼",777));
    val.insert(p("叫爸爸",88));
    val["爸"] = 8;
    pmap("很伤心");
    pmap("很崇拜");
    pmap("贼牛逼");
    pmap("叫爸爸");
    pmap("爸");
    pmap("吧");
    cout << clock();
}