QHash 跟 QMap的再次提问。

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设计之初就不是用来排序的