QHash

#include <QCoreApplication>
#include<QHash>
#include<QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QHash<int,QString> Employees;
    Employees.insert(1,"Bob");
    Employees.insert(2,"Cat");
    Employees.insert(3,"Boat");
    Employees.insertMulti(1,"mmm");

    qDebug()<<"3    " << Employees.value(3);

//    foreach(int i, Employees.keys())
//    {
//        qDebug() << Employees[i];
//    }

//    QHashIterator<int,QString> Iter(Employees);
//    while(Iter.hasNext())
//       {
//        Iter.next();
//        qDebug() << Iter.key()<<" "<<Iter.value();
//    }

    return a.exec();
}

  

时间: 2024-11-17 12:45:58

QHash的相关文章

第三十七课、深度解析QMap与QHash

一.QMap深度解析 1.QMap是一个以升序键顺序存储键值对的数据结构 (1)QMap原型为class QMap<K, T>模板 (2).QMap中的键值对根据key进行了排序 (3).QMap中的key类型必须重载operator <     (小于操作符) 2.QMap使用实例一 3.QMap使用实例二 4.QMap的注意事项 (1).通过key获取Value时 A.当key存在,返回对应的Value B.当key不存在,返回值类型所对应的"零"值 (2).插入

第37课 深度解析QMap与QHash

1. QMap深度解析 (1)QMap是一个以升序键顺序存储键值对的数据结构 ①QMap原型为 class QMap<K, T>模板 ②QMap中的键值对根据Key进行了排序 ③QMap中的Key类型必须重载operator< .(即“小于”操作符) (2)QMap使用示例1 QMap<QString, int> map; //注意插入时是无序的 map.insert("key 2", 2); map.insert("key 0", 0

QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数

前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功... 后来还跑到论坛上问人了,丢脸丢大了... 事先说明:以下这个例子是错误的 [cpp] view plaincopyprint? #include <QtCore> struct node { int cx, cy; bool operator < (const node &b) const { return cx < b.cx; } }; int main(int argc, cha

QMap与QHash

关联容器可以保存任意多个具有相同类型的项,且它们由一个键索引.Qt提供两个主要的关联容器类:QMap<K, T>和QHash<K, T>. QMap<K, T>是一个以升序键顺序存储键值对的数据结构.这种排列使它可以提供良好的查找插入性能及键序的迭代.在内部,QMap<K, T>是作为一个跳越列表(skip-list)来实现执行的. 在映射中插入项的一种简单方式是调用insert(): QMap<QString, int> map; map.in

Qt ------- QMap和QHash的区别

基本概念: QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个值,并且按照Key的次序存储数据.同时这个类也支持一键多值的情况,用类QMultiMap可以实现. QHash具有和QMap几乎完全一样的APi,此类维护这一张哈希表,表的大小和数据项是自适应的,QHash是以任意的顺序住址他的数据,当然了他也是可以支持一键多值的,用类QMultiHash可以实现. 两者之间的区别是: QHash查找速度上显著于QMap. QHash以任意的方式进行存储,而

QHash和QMultiHash使用

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QHash和QMultiHash使用     本文地址:http://techieliang.com/2017/12/557/ 文章目录 1. 介绍 2. 简单范例  2.1. QHash  2.2. QMultiHash 1. 介绍 QHash<Key, T>是一个在哈希表中存储键值对的数据结构.它的接口几乎与QMap<Key, T>相同,但是与QMap<Key, T&

QSet使用及Qt自定义类型使用QHash等算法

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSet使用及Qt自定义类型使用QHash等算法     本文地址:http://techieliang.com/2017/12/580/ 文章目录 1. 介绍 2. 简单范例 3. 自定义类型 1. 介绍 Qt提供的一个单值的数学集合的快速查找容器,使用方式与QList相同,但其内元素不会有重复.详细说明见 官方文档 注意,此容器实现方式是基于哈希表,而不是红黑树,若使用自定义类必须提供对

QMap 与 QHash

Qt提供的关联容器,QMap.QMultiMap,QHash.QMultiHash和QSet,带有"Multi"字样的容器支持在一个键上面关联多个值. "Hash"容器提供了基于散列函数的更快的查找,而非 Hash 容器则是基于二分搜索的有序集合. 一.QMap.QMultiMap QMap<Key, T>:提供了字典数据结构(关联数组),将类型 T 的值同类型 Key 的键关联起来.通常,每个键与一个值关联.QMap 以键的顺序存储数据:如果顺序无关,

将vim作为QT开发的IDE

转载请注明链接与作者huihui1988 用了一段时间的vim,喜欢上了这种简洁高效的编辑器.恰逢正在学习QT中,于是将vim变成了开发QT的工具.以下是具体配置. 一.语法高亮支持: 1.打开VIMDIR/vim72/syntax/cpp.vim,加入 syn keyword cppStatement SLOT,SIGNAL syn keyword cppAccess slots,signals 2.增加QT的类型名: syn keyword cType ActiveQt Q3Accel Q3