在 C++ 中使用 QStringList 构建 QHash

Posted

技术标签:

【中文标题】在 C++ 中使用 QStringList 构建 QHash【英文标题】:Building a QHash with QStringList in C++ 【发布时间】:2015-05-27 21:26:07 【问题描述】:

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

【问题讨论】:

panofish,对你的任务不是很清楚。请提供搜索返回的 A 并请添加 C 以及它会返回什么? 【参考方案1】:

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

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

【讨论】:

以上是关于在 C++ 中使用 QStringList 构建 QHash的主要内容,如果未能解决你的问题,请参考以下文章

使用信号和槽在类之间发送 QStringList

在 QStringList 中添加 " 符号 [重复]

QstringList 到 Qstring 的转换问题

求教QStringList 拆分为 多个 QStringList

如何在QML应用中设计一个C++ Model并使用它

Qt6STL-QStringList分析