是否可以按插入顺序循环QHash?下面的方法似乎是通过其他因素循环哈希的:
QHashIterator<QString, QString> i(hash);
while (i.hasNext()) {
i.next();
qDebug() << i.key() << ": " << i.value();
}编辑:
我认为用QHash是不可能的,但是我应该使用什么呢?
发布于 2010-08-04 12:13:18
从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 上迭代以检索插入的顺序中的元素。
发布于 2010-08-04 11:26:30
QHash不记得您的插入顺序。它是为快速随机访问而设计的。迭代器的顺序是任意的。
发布于 2010-08-04 11:34:03
如果只在中使用插入元素(没有删除元素),则可以并行使用数组/列表。这不是一个非常优雅的解决方案,但是您想要的不能仅通过QHash容器来实现。
https://stackoverflow.com/questions/3404491
复制相似问题