C++STL之unordered_map与QT的QHash对比
刚刚心血来潮,试一试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();
}
C++STL之unordered_map与QT的QHash对比的更多相关文章
- STL——map/unordered_map基础用法
map /multimap map是STL里重要容器之一. 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key, ...
- 详细介绍C++STL:unordered_map
不得不提一下,hash_map未加入在C++11标准中. 在VC中编译: #include <hash_map> using namespace stdext; hash_map<i ...
- c++ STL之unordered_map
1.1 特性 关联性:通过key去检索value,而不是通过绝对地址(和顺序容器不同) 无序性:使用hash表存储,内部无序 Map : 每个值对应一个键值 键唯一性:不存在两个元素的键一样 动态内存 ...
- C++ STL之unordered_map和unordered_set的使⽤
写在最前面,本文摘录于柳神笔记: unordered_map 在头⽂件 #include <unordered_map> 中, unordered_set 在头⽂件 #include &l ...
- Understand the Qt containers(有对应表)
Container classes are one of the cornerstones of object-oriented programming, invaluable tools that ...
- Qt容器类汇总说明
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt容器类汇总说明 本文地址:http://techieliang.com/2017/ ...
- qt基础知识之类库概述
qt是用标准c++编写的跨平台开发类库,它对标准c++进行拓展,引入元对象系统.信号&槽.属性等特征 全局定义 容器类及对应迭代器 qt的模块化体系,分为 基本模块和拓展模块,一个模块通常就是 ...
- Qt And MFC Mouse Over Tips
Qt鼠标提示分析说明 关于鼠标停留在控件上面,显示提示内容的方法. 对于Qt来说, Qt的某一个控件类, 如果属于GUI的, 那么这个控件类会有一个setToolTip(QString text)的方 ...
- C++——STL之vector, list, deque容器对比与常用函数
STL 三种顺序容器的特性对比: vector 可变数组,内存空间是连续的,容量不会进行缩减.支持高效随机存取,即支持[]和at()操作.尾部插入删除效率高,其他位置插删效率较低: list 双向链表 ...
随机推荐
- How to work with the snap environment
How to work with the snap environment SummaryThe snap environment manages snap agents and snap toler ...
- VMware桥接模式下主机和和虚机间互相ping不通的处理方法
在 "编辑"->"虚拟网络编辑器" 里面的vmnet0 桥接模式 里面是自动连接,把他改为真实的物理网卡即可,如下图:
- jsp到java后台中文乱码问题
---首先描述一下我的情况,我的jsp 设置了编码格式 <%@ page language="java" contentType="text/html; ch ...
- MySQL无法启动、服务没有报告任何错误&初次登陆错误的解决
先以管理员身份运行cmd(右键单击左下角win菜单) 输入mysqld -install,net start mysql,下图是返回结果.报错情况以及修正之后的全过程 启动失败之后输入mysqld - ...
- phantomJs页面操作
因为phantomjs能加载和操纵页面,它可以自动化地完美执行页面的各种操作. 操作文档: 脚本的被执行,就像它真的正在web 浏览器上运行一样. 下面的脚本,是读取元素id为myagent的文本内容 ...
- npm run dev时报错“events.js:160 throw er; // Unhandled 'error' event”
经查,此问题由端口占用导致,node服务器默认端口8080已被其他程序占用,关闭占用端口的程序或者修改node服务器的默认端口即可解决此问题
- 初始docker
什么是docker? 很多人都是使用docker但是对docker的理解其实并没有这么透彻,只知道怎么用但是不知道为什么用 什么时候去用. 一.环境配置的难题 软件开发最大的麻烦事之一,就是环境配置. ...
- svn回退到具体的版本
svn回退到具体的版本 找到项目的版本号 命令行中输入相关命令 到指定地点找到项目即可
- CSS学习摘要-布局
注:全文摘自MDN-介绍CSS布局 CSS页面布局技术允许我们拾取网页中的元素,并且控制它们相对正常布局流.周边元素.父容器或者主视口/窗口的位置.在这个模块中将涉及更多关于页面布局技术的细节: 浮动 ...
- PFC电源设计与电感设计计算学习笔记
PFC电源设计与电感设计计算 更新于2018-11-30 课程概览 常见PFC电路和特点1 常见PFC电路和特点1 CRM PFC电路设计计算 CCM PFC电路设计计算 CCM Interleave ...