我在Qt项目中使用几行代码,每1秒附加到Qvector。我注意到在STL deque中可以更好地在向量中添加一个新元素。什么是等效或类似的Qt方式?因为我在Qt库中找不到任何内容。
Julio
答案 0 :(得分:5)
在QT中没有直接等同于std::deque
类。
但是,最好的办法是使用QList。
以下是文档中有关QT容器类的内容:
对于大多数用途,QList是正确使用的类。它的基于索引的API比QLinkedList的基于迭代器的API更方便,并且它通常比QVector更快,因为它将其项目存储在内存中。它还扩展为可执行文件中较少的代码。
无论如何,如果你每秒只追加一次物品,那么选择一种物品不会产生太大的影响。
答案 1 :(得分:1)
没有必要为每个std容器都有一个Qt等价物,你可以使用std :: deque,如果这是你所追求的。
无论如何,请注意,对于在向量末尾执行大量插入的情况,std::vector和QVector都有一个名为 reserve 的成员函数(请参阅链接)可以用来预先分配一个更大的缓冲区,并在最后加快插入。