刚刚心血来潮,试一试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();
}