是否可以通过插入顺序循环Qhash?下面的方法似乎是其他因素循环的:

QHashIterator<QString, QString> i(hash);
while (i.hasNext()) {
    i.next();
    qDebug() << i.key() << ": " << i.value();
}

编辑:

我认为Qhash是不可能的,但是我应该使用什么?

有帮助吗?

解决方案

QHASH 文件,

Qhash是无序的,所以 不能认为迭代器的序列是可预测的. 。如果需要按密钥订购,请使用 QMAP

就是这样 不可能.

如果要根据键进行订购,请使用 QMap 反而..

希望能帮助到你..

编辑:

如果你 需要 KeyValue 逻辑映射及其值,您可以使用

QList<QPair<QString,QString>> pairs;

例如:

第一个值可以通过

QString firstValue = pairs.at(0).first;

类似地,对于QPAIR中的第二个值,

QString secondValue = pairs.at(0).second;

您可以迭代 QList 在插入顺序中检索元素..

其他提示

QHash 不记得您的插入顺序。它设计用于快速随机访问。您使用迭代器获得的顺序是任意的。

如果你 只要 插入元素(无元素删除) QHash 您可以并行使用数组/列表。这不是一个非常优雅的解决方案,但是您想要的无法实现 QHash 仅容器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top