首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QHash 跟 QMap的再次提问。

2012-09-04 
QHash 和 QMap的再次提问。。。。QHash或者QMap如何实现这样的功能:以某种顺序依次insertkey,value然后用迭

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

热点排行