在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构建和检索数据?
最佳答案
我认为您需要为QHash中的QStringList添加值的所有操作是:
QStringList & mylist = myhash[key]; // will create and insert an empty QStringList if necessary
mylist.append(value);
关于c++ - 在C++中使用QStringList构建QHash,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30493439/