在C ++中使用QStringList构建QHash

时间:2015-05-27 21:26:08

标签: c++ qt qhash

在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的数据吗?

1 个答案:

答案 0 :(得分:1)

我认为你需要做的就是在QHash中为QStringList添加一个值:

QStringList & mylist = myhash[key];  // will create and insert an empty QStringList if necessary
mylist.append(value);