当前位置: 代码迷 >> QT开发 >> QHash 跟 QMap的再次提问。
  详细解决方案

QHash 跟 QMap的再次提问。

热度:147   发布时间:2016-04-25 04:35:09.0
QHash 和 QMap的再次提问。。。。
QHash或者QMap如何实现这样的功能:
以某种顺序依次insert <key,value>

然后用迭代依次取出key和value
 QMapIterator<QString, int> i(map);
 while (i.hasNext()) {
  i.next();
  cout << i.key() << ": " << i.value() << endl;
 }

使得key和value的顺序,和insert的顺序一样。。。


PS:QMap通过insert后,会按照关键字的值,进行顺序排列,所以取出来的值,key是从小到大的。。。
QHash 取出来的key有时候有序,有时候无序。。。


------解决方案--------------------
为何不直接使用QVector或std::vector?
随手写一个
C/C++ code
std::vector<std::pair<QString, int> > collection;...............for(auto const &data : collection)  qDebug() << data.first << ", " << data.second;
------解决方案--------------------
QHash或者QMap设计之初就不是用来排序的