首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按插入顺序循环QHash

按插入顺序循环QHash
EN

Stack Overflow用户
提问于 2010-08-04 10:09:00
回答 3查看 7.9K关注 0票数 5

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

代码语言:javascript
复制
QHashIterator<QString, QString> i(hash);
while (i.hasNext()) {
    i.next();
    qDebug() << i.key() << ": " << i.value();
}

编辑:

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-04 12:13:18

QHash文档中,

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

因此,这是不可能的

如果您想要根据键排序,请使用QMap代替..。

希望能帮上忙..。

编辑:

如果不需要KeyValue逻辑映射以及它们的值,则可以使用

代码语言:javascript
复制
QList<QPair<QString,QString>> pairs;

例如:

第一个值可由

代码语言:javascript
复制
QString firstValue = pairs.at(0).first;

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

代码语言:javascript
复制
QString secondValue = pairs.at(0).second;

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

票数 13
EN

Stack Overflow用户

发布于 2010-08-04 11:26:30

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

票数 1
EN

Stack Overflow用户

发布于 2010-08-04 11:34:03

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3404491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档