在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/

10-12 16:06