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 双向链表 ...
随机推荐
- opencv3.2.0形态学滤波之开运算、闭运算
/* 一.开运算: (1)开运算,其实就是先腐蚀后膨胀的过程. (2)数学表达式:dst = open(src,element) = dilate(erode(src,element)) (3)作用: ...
- CentOS7系列--1.2CentOS7基本设置
CentOS7基本设置 1. 查看相关信息 1.1. 查看系统信息 1.1.1. 查看系统位数 方法1: [root@centos7 ~]# uname -a Linux centos7.smartm ...
- RSA与ECC的比较
第六届国际密码学会议对应用于公钥密码系统的加密算法推荐了两种:基于大整数因子分解问题(IFP)的RSA算法和基于椭圆曲线上离散对数计算问题(ECDLP)的ECC算法.RSA算法的特点之一是数学原理简单 ...
- 例如android:layout_marginBottom的值为负数
为什么有时候像android:layout_marginBottom等变量的赋值为负数? 例如如下代码: <?xml version="1.0" encoding=" ...
- Vue 框架-04-计算属性
Vue 框架-04-计算属性 计算属性是什么? 大家可以去看官网解释:计算属性和侦听器 今天的第一个小实例: 为啥先放折磨一个实例,之前数据绑定的就已经可以实现了,看起来那么简单,就是为了告诉大家,当 ...
- 请求包含(Include)和请求转发(Forward)
定义 请求包含是指将另一个Servlet的请求处理流程包含进来. 请求转发是指将请求转发给别的Servlet处理. 实现 实现请求包含和请求转发,可以使用HttpServletRequest的getR ...
- java基础(八) 深入解析常量池与装拆箱机制
引言 本文将介绍常量池 与 装箱拆箱机制,之所以将两者合在一起介绍,是因为网上不少文章在谈到常量池时,将包装类的缓存机制,java常量池,不加区别地混在一起讨论,更有甚者完全将这两者视为一个整体, ...
- SCLAlertView-Swift
SCLAlertView-Swift https://github.com/vikmeup/SCLAlertView-Swift Animated Alert View written in Sw ...
- 如何获取UITableView中cell的frame值
如何获取UITableView中cell的frame值 这个可以用来处理UITableView弹出键盘的问题 本人视频教程系类 iOS中CALayer的使用 效果: 源码: // // ViewC ...
- 解决华为交换机S5700无法解除ip/Mac绑定的问题
今天同事离职,需要解除他的个人笔记本Mac与ip的绑定 首先进入系统用户视图,然后进入vlanif4,解除151绑定 system-view interface vlanif 4 undo dhcp ...