题
是否可以通过插入顺序循环Qhash?下面的方法似乎是其他因素循环的:
QHashIterator<QString, QString> i(hash);
while (i.hasNext()) {
i.next();
qDebug() << i.key() << ": " << i.value();
}
编辑:
我认为Qhash是不可能的,但是我应该使用什么?
解决方案
从 QHASH 文件,
Qhash是无序的,所以 不能认为迭代器的序列是可预测的. 。如果需要按密钥订购,请使用 QMAP
就是这样 不可能.
如果要根据键进行订购,请使用 QMap
反而..
希望能帮助到你..
编辑:
如果你 别 需要 Key
和 Value
逻辑映射及其值,您可以使用
QList<QPair<QString,QString>> pairs;
例如:
第一个值可以通过
QString firstValue = pairs.at(0).first;
类似地,对于QPAIR中的第二个值,
QString secondValue = pairs.at(0).second;
您可以迭代 QList
在插入顺序中检索元素..
其他提示
QHash
不记得您的插入顺序。它设计用于快速随机访问。您使用迭代器获得的顺序是任意的。
如果你 只要 插入元素(无元素删除) QHash
您可以并行使用数组/列表。这不是一个非常优雅的解决方案,但是您想要的无法实现 QHash
仅容器。
不隶属于 StackOverflow