刚刚心血来潮,试一试QT和STL哪个好
网上评论都支持STL,我试了试:
贴上代码:
#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:
看到了吗?
多长志气!!
贴上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毫秒:
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();
}