我在 Qt 项目的几行代码中每 1 秒附加到 Qvector 中。我注意到在 STL 中,双端队列在将新元素添加到该向量的末尾时可能具有更好的性能。什么是等效或类似的 Qt 方式?因为我在 Qt 库中找不到任何东西。
胡里奥
没有直接等效std::deque
于 QT 中的类。
但是,最好的选择是使用QList。
以下是文档中关于 QT 容器类的内容:
对于大多数用途,QList 是正确使用的类。它的基于索引的 API 比 QLinkedList 的基于迭代器的 API 更方便,而且它通常比 QVector 更快,因为它将项目存储在内存中的方式。它还扩展到您的可执行文件中的更少代码。
无论如何,如果您每秒只添加一次项目,那么选择其中一个不会有太大影响。
不需要为每个 std 容器都有一个 Qt 等效项,如果这是你所追求的,你可以使用 std::deque 。
无论如何,请注意,对于在向量末尾进行大量插入的情况,std::vector和QVector都有一个名为reserve的成员函数(参见链接),可用于预分配更大的缓冲区和使最后的插入更快。