1. 定义:QHash <Key,T> 存储 (键,值) 对,并提供与键相关的值的非常快速的查找。
2. QHash 和 QMap 比较: QHash提供与QMap非常相似的功能。 不同之处是:
- QHash提供比QMap更快的查找。
- 迭代器遍历QMap时 ,项(items)始终按键排序。 使用QHash ,这些项是任意排序的。
- QMap的键类型必须提供运算符 <() 。 QHash的键类型必须提供运算符 ==() 和一个名为 qHash() 的全局哈希函数。
一、示例
#include <QCoreApplication>
#include <QHash>
#include <QHashIterator>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QHash<QString, int> hash; //定义hash, key:QString, value:int
hash["one"] = 1; //插入数据,方法1: value: <"one",1>
hash.insert("two", 2); //插入数据,方法2: value: <"two",2>
//insert方法进行插入的,每个键只允许一个值
//如果一个键插入多个值,使用QHash::insertMulti(const Key &key, const T &value)
int num1 = hash["one"]; //获取数据,方法1: value: 1
int num2 = hash.value("two"); //获取数据,方法2: value: 2
int time = 30;
if (hash.contains("time")) //查询数据,方法1: value: time = 30
{
time = hash.value("time");
}
int time2 = hash.valu