0

在 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 构建和检索数据?

4

1 回答 1

1

我认为在 QHash 中向 QStringList 添加值所需要做的就是:

QStringList & mylist = myhash[key];  // will create and insert an empty QStringList if necessary
mylist.append(value);
于 2015-05-27T21:47:54.097 回答