Qt QMap和QList速度

时间:2013-12-08 10:56:52

标签: performance qt

什么是更快: QMap,通过[]运营商

访问元素
QMap<int, QString> qmap;
//add some elements
QString value = qmap[key];

QList,键作为类成员:

QList<MyClass*> qlist;
//add some elements
for (int i = 0; i < qlist.length(); ++i)
{
    if (qlist[i].key == KEY)
    {
        MyClass *value = qlist[i];
        break;
    }
}

1 个答案:

答案 0 :(得分:3)

对于足够大的容器,您应该将性能与数据进行基准测试(最重要的是容器的大小),我希望QMap比顺序搜索到矢量更快。

但是一个非常重要的注意事项:使用find从与密钥关联的QMap(或std :: map)中获取元素,因为如果找不到密钥,operator[]会插入一个元素容器。

同样对于大数据,您也可以查看(和基准)QHash

LE:this文档页面提供了“QContainers”

的一些比较