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

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

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

 贴上代码:

 1 #include <QCoreApplication>
 2 #include <QHash>
 3 #include <QDebug>
 4 #include <time.h>
 5 
 6 QHash<QString,int> val;
 7 
 8 void pmap(QString a)
 9 {
10     qDebug() << a << ':' << val[a] << '\n';
11 }
12 
13 
14 int main(int argc, char *argv[])
15 {
16     QCoreApplication a(argc, argv);
17 
18     val.insert("很伤心",555);
19     val.insert("很崇拜",666);
20     val.insert("贼牛逼",777);
21     val.insert("叫爸爸",88);
22     val[""] = 8;
23     pmap("很伤心");
24     pmap("很崇拜");
25     pmap("贼牛逼");
26     pmap("叫爸爸");
27     pmap("");
28     pmap("");
29     qDebug()<<'\n'<<clock();
30     return a.exec();
31 }

接下来STL,我用的是VS2019:

看到了吗?

多长志气!!

贴上VS的代码:

 1 #include <iostream>
 2 #include <unordered_map>
 3 #include <time.h>
 4 using namespace std;
 5 typedef pair<string, int> p;
 6 unordered_map<string, int> val;
 7 auto pmap(string a)
 8 {
 9      cout << a << ':' << val[a] << endl;
10 }
11 int main()
12 {
13     val.insert(p("很伤心",555));
14     val.insert(p("很崇拜",666));
15     val.insert(p("贼牛逼",777));
16     val.insert(p("叫爸爸",88));
17     val[""] = 8;
18     pmap("很伤心");
19     pmap("很崇拜");
20     pmap("贼牛逼");
21     pmap("叫爸爸");
22     pmap("");
23     pmap("");
24     cout << clock();
25 }

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

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

猜你喜欢

转载自www.cnblogs.com/lhy-cblog/p/map_QHash.html