[在阅读了诸如Why doesn't QList have a resize() method?之类的许多问题之后,我想知道以下内容。
通常,在STL代码中,我可能会有类似的东西来限制处理的results
的大小:
std::list<int> results = something()
results.resize(std::min(result.size(), 5000));
现在我有一个带有QList的Qt项目:
QList<int> results = something()
while(results.size() > 5000) {
results.removeLast();
}
expensiveOperation(results);
这真的是使用[[Qt容器 a QList
的最佳方法吗?原因是我需要将此最终传递给期望QList
的框架函数。
QList
!= std::list
。有QLinkedList
更像是std。版。对于大多数操作,QVector
比QList
更可取,是Qt中使用的容器类型。阅读https://marcmutz.wordpress.com/effective-qt/containers/以获取完整说明。如果由于某种原因而坚持使用QList
...那么是...:((
may可以更快地用QList::mid()
获取新列表。而且总是QList::toVector()
或[ C0]。:)