我在C++中使用 QHash
来存储一些简单的键值对。在我的情况下,键和值都是整数。要向哈希表中添加一个新的键/值对,这是我的语法:
QHash<int, int> myhash;
int key = 5;
int value = 87;
myhash.insert(key,value);
qDebug() << "key 5 value = " << myhash.value(5); // outputs 87
如何更新现有的键值对?语法是什么?
T & QHash::operator[](const Key & key) 以可修改的引用形式返回与键相关联的值。
您可以执行以下操作:
myhash[5] = 88;
根据文档:如果您使用已经存在于QHash中的键调用insert()函数,则会擦除先前的值。例如:
hash.insert("plenty", 100);
hash.insert("plenty", 2000);
// hash.value("plenty") == 2000
在这种情况下,Operator[]同样适用。但是要注意其他情况。从文档中可以看到: 一般来说,我们建议使用contains()和value()而不是operator来查找哈希表中的键。原因是如果不存在相同的键,则operator会在哈希表中默默地插入一个项(除非哈希表是const)。