什么时候用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();}