按插入顺序循环QHash

Den*_*nis 4 c++ qt qhash

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

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

编辑:

我认为QHash不可能,但我应该使用什么呢?

lia*_*iaK 12

来自QHash文档,

QHash是无序的,因此不能假定迭代器的序列是可预测的.如果需要按键排序,请使用QMap

所以这是不可能的.

如果您想根据钥匙订购,请QMap改用..

希望能帮助到你..

编辑:

如果你没有需要KeyValue逻辑映射,只是他们的价值观,你可以使用

QList<QPair<QString,QString>> pairs;
Run Code Online (Sandbox Code Playgroud)

例如:

第一个值可以通过获得

QString firstValue = pairs.at(0).first;
Run Code Online (Sandbox Code Playgroud)

同样,对于QPair中的第二个值,

QString secondValue = pairs.at(0).second;
Run Code Online (Sandbox Code Playgroud)

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