我的问题基本上是什么时候选择QVector以及何时选择QList作为你的Qt容器.我所知道的:
对于大多数用途,QList是正确的类.它的基于索引的API比QLinkedList的基于迭代器的API更方便,并且它通常比QVector更快,因为它将其项目存储在内存中.它还扩展到可执行文件中较少的代码.
这是非常受欢迎的问答:QVector vs QList.它也有利于QList.
但是:在最近的2015年Qt世界峰会上,KDAB提出了"为什么QList有害",这基本上是在这里:
不要使用QList,请使用Q_DECLARE_TYPEINFO
据我所知,这个想法是,QList在堆中分配新元素时,几乎所有类型都是低效的.每次添加新元素时,它都会调用new(每个元素一次),与之相比,这是低效的QVector.
这就是我现在试图理解的原因:QVector我们应该选择哪个默认容器?