当前位置: 代码迷 >> QT开发 >> 一上 QMap和QHash 区别
  详细解决方案

一上 QMap和QHash 区别

热度:768   发布时间:2016-04-25 04:34:59.0
弱弱的问一下 QMap和QHash 区别?
什么时候用QMap,什么时候用QHash呢?

在网上也搜了一些东西,QHash的查找效率比QMap要高一些
但是QMap有什么优点呢,感觉上QMap可以实现的,QHash也可以实现。。。

------解决方案--------------------
使用上来讲,QMap和QHash可以认为没有区别。

实现上来讲,QMap应该是使用“平衡二叉树”实现的,QHash应该是使用“哈希”算法实现的。
------解决方案--------------------
>之前我也是这样认为的 ,QMap会自动排序,但是我有QHash试了一下,结果还是顺序输出。。。
C/C++ code
template<typename T>void populateData(T &data){    data.insert("one", "aaa");    data.insert("two", "bbb");    data.insert("three", "ccc");    data.insert("four", "ddd");    data.insert("five", "eee");    data.insert("six", "ggg");}int main(int argc, char *argv[]){    QApplication app(argc, argv);    QHash<QString, QString> data;    populateData(data);    QMap<QString, QString> data2;    populateData(data2);    auto it2 = std::begin(data2);;    for(auto it = std::begin(data);  it != std::end(data); ++it, ++it2)        qDebug() << it.value() << ", " << it2.value();    return app.exec();}