我在整个代码中使用QList
。根据{{3}}和链接页面https://doc.qt.io/qt-5/qvector.html QVector
的说法,“应该永远是第一选择”,或者只要一个人不使用,QList
根本就不应该使用”。可以处理Qt API函数,以获取或返回QList
。
因此,我现在考虑将代码中的所有QList
和QStringList
替换为QVector
(这应该没问题)。
但是用数据填充QVector
的最有效方法是什么?共有三个选项:
QVector<sometype> vector;
for (whatever) {
vector.append(someting)
}
这就是我目前对大多数QList
所做的事情。但是通常,我知道向量有多少个元素,并且QVector
可以用给定的长度初始化,或者告诉它它将有多少个元素。所以我可以做:
QVector<sometype> vector(count);
int i = 0;
for (whatever) {
vector.insert(i++, something);
}
或:
QVector<sometype> vector;
vector.reserve(count);
for (whatever) {
vector.append(something);
}
那哪种方法最有效?