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

一上 QMap和QHash 区别

2012-09-07 
弱弱的问一下 QMap和QHash 区别?什么时候用QMap,什么时候用QHash呢?在网上也搜了一些东西,QHash的查找效率

弱弱的问一下 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();} 

热点排行