I’ve got a QVector of QVector. And I want to collect all elements in all QVectors to form a new QVector.
Currently I use the code like this
QVector<QVector<T> > vectors;
// ...
QVector<T> collected;
for (int i = 0; i < vectors.size(); ++i) {
collected += vectors[i];
}
But it seems the operator+= is actually appending each element to the QVector. So is there a more time-efficent usage of QVector or a better suitable type replace QVector?
If you really need to, then I would do something like:
But please take note that this sounds a bit like premature optimisation. As the documentation points out:
So don’t do this kind of thing unless you’re really sure it will improve your performance. Keep it simple (like your current way of doing it).
Edit in response to your additional requirement of O(1):
Well if you’re randomly inserting it’s a linked list but if you’re just appending (as that’s all you’ve mentioned) you’ve already got amortized O(1) with the QVector. Take a look at the documentation for Qt containers.