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 双向链表 ...
随机推荐
- redis中文
Redis 是完全开源免费的,遵守BSD协议,先进的key - value持久化产品.它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), ...
- Solr常用操作命令
1. 新建collection ./solr create_collection -c collection_vip -d /opt/lucidworks-hdpsearch/solr/server/ ...
- C++ 判断当前系统x64 or x86
BOOL IsWow64(){ BOOL bIsWow64 = FALSE; //IsWow64Process is not available on all supported versions o ...
- Git Flow 代码版本控制模型
说到代码版本控制,推荐一下最新的Git.跟SVN相比,最大的区别是它在本地也保存了一个代码库,这样可以离线工作,首先将代码提交到本地仓库,联网之后再同步到服务器端.代码托管网站 Github 和 Bi ...
- CSS的设计模式
什么是设计模式? 曾有人调侃,设计模式是工程师用于跟别人显摆的,显得高大上:也曾有人这么说,不是设计模式没用,是你还没有到能懂它,会用它的时候. 先来看一下比较官方的解释:“设计模式(Design p ...
- 【Redis】命令学习笔记——字符串(String)(23个超全字典版)
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 本篇基于redis 4.0.11版本,学习字符串( ...
- .net Cookie的操作
using System; using System.Collections.Generic; using System.Web; namespace Zhong.Core { /// <sum ...
- mysql 8.0.11 安装(windows)
mysql本地安装(windows) 一.安装包下载 从官网下载安装包,地址:https://dev.mysql.com/downloads/mysql/ 二.配置 解压到本地,然后在目录下新建my. ...
- Redis学习---Redis的免密操作
Redis的免密操作 问题解决[方式一]:当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效 1.首先进入redis,如果没有开启redis则需要先开启: [r ...
- (转)透明光照模型与环境贴图之基础理论篇(折射率、色散、fresnel定律) .
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 材质和光的交互除了反射现象,对于透明物 ...