刚刚心血来潮,试一试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对比的更多相关文章

  1. STL——map/unordered_map基础用法

    map /multimap map是STL里重要容器之一. 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key,  ...

  2. 详细介绍C++STL:unordered_map

    不得不提一下,hash_map未加入在C++11标准中. 在VC中编译: #include <hash_map> using namespace stdext; hash_map<i ...

  3. c++ STL之unordered_map

    1.1 特性 关联性:通过key去检索value,而不是通过绝对地址(和顺序容器不同) 无序性:使用hash表存储,内部无序 Map : 每个值对应一个键值 键唯一性:不存在两个元素的键一样 动态内存 ...

  4. C++ STL之unordered_map和unordered_set的使⽤

    写在最前面,本文摘录于柳神笔记: unordered_map 在头⽂件 #include <unordered_map> 中, unordered_set 在头⽂件 #include &l ...

  5. Understand the Qt containers(有对应表)

    Container classes are one of the cornerstones of object-oriented programming, invaluable tools that ...

  6. Qt容器类汇总说明

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt容器类汇总说明     本文地址:http://techieliang.com/2017/ ...

  7. qt基础知识之类库概述

    qt是用标准c++编写的跨平台开发类库,它对标准c++进行拓展,引入元对象系统.信号&槽.属性等特征 全局定义 容器类及对应迭代器 qt的模块化体系,分为 基本模块和拓展模块,一个模块通常就是 ...

  8. Qt And MFC Mouse Over Tips

    Qt鼠标提示分析说明 关于鼠标停留在控件上面,显示提示内容的方法. 对于Qt来说, Qt的某一个控件类, 如果属于GUI的, 那么这个控件类会有一个setToolTip(QString text)的方 ...

  9. C++——STL之vector, list, deque容器对比与常用函数

    STL 三种顺序容器的特性对比: vector 可变数组,内存空间是连续的,容量不会进行缩减.支持高效随机存取,即支持[]和at()操作.尾部插入删除效率高,其他位置插删效率较低: list 双向链表 ...

随机推荐

  1. Excel2010取消隐藏的工作簿

    背景 Excel 2010文件,其中包含针对业务需要涉及的计算器等,其中一个Worksheet用于存放计算器用到的常量,针对业务人员(即此Excel文件的用户)是隐藏的,并有密码保护. 现象 因业务变 ...

  2. Kriging插值计算

      参考论文:      http://people.ku.edu/~gbohling/cpe940 # -*- coding: utf-8 -*- # ----------------------- ...

  3. FineReport中如何自定义登录界面

    在登录平台时,不希望使用FR默认的内置登录界面,想通过自定义登录界面实现登录操作,内置登录界面如下图: 登录界面,获取到用户名和密码的值,发送到报表系统,报表服务带着这两个参数访问认证地址进行认证. ...

  4. android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配

    1 Android手机目前常见的分辨率 1.1 手机常见分辨率: 4:3VGA     640*480 (Video Graphics Array)QVGA  320*240 (Quarter VGA ...

  5. 你写的什么垃圾代码让Vsync命令不能及时处理呢?(2)

    接上篇 1.TraceView Traceview看起来复杂,其实很简单: 上部分图中,X代表时间消耗,Y轴代表各个线程中的方法,且使用了不同颜色表示.面积越款,时间越长. 下部分为分析面板,分析面板 ...

  6. Django基本设置

    Dango设置流程图片示例: 设置路由时需要注意的一个点是:Django中定义路由时,通常习惯以斜线 / 结尾 其他常用命令: python manage.py runserver 0.0.0.0:8 ...

  7. [SQL Server]SQL行转列

    SELECT * FROM (select ActionTargetType+actiontype as TypeResult, COUNT(RowGuid) as Number from BanJi ...

  8. route命令使用

    ---恢复内容开始--- 利用route命令可以实现内外网同时访问 route 命令参数: route [-f] [-p] [Command [Destination] [mask Netmask] ...

  9. scala数据库工具类

    scala的数据库连接池,基于mysql import java.util.concurrent.ConcurrentHashMap import com.jolbox.bonecp.{ BoneCP ...

  10. * args 和 **kwargs

    def func(*args, **kwargs): print(args,kwargs) func("对", "哦",o=4, k=0) 结果---> ...