在C ++中,我正在尝试构建一个像这样的专用QHash:
QHash<QString, QStringList> myhash;
这样我就可以存储这类数据:
QHash key QStringList values
---------- ------------------
A 1
2
3
B 5
6
我在使用C ++语法时遇到问题,无法正确构建哈希以及如何检索哈希值。例如,如果给定B,我希望循环并返回5,6。
这是我在要添加新密钥,值对时附加到哈希的逻辑的黑客尝试:
QHash<QString, QStringList> myhash;
key = "A";
value = "2";
if (myhash.contains(key) ) {
QStringList mylist = myhash.value(key);
mylist.append(value);
} else {
QStringList mylist;
mylist.append(value);
myhash.insert( key, mylist);
}
我不确定这是否有效,因为我还没有能够为myhash创建检索循环逻辑。
任何人都可以帮我构建和检索来自这样的QHash的数据吗?
答案 0 :(得分:1)
我认为你需要做的就是在QHash中为QStringList添加一个值:
QStringList & mylist = myhash[key]; // will create and insert an empty QStringList if necessary
mylist.append(value);