That's an interesting observation. Would it be easy to add an api to QList and QVector that would somehow keep track of the empty spots and use them if available? In a `QList`, it would require only an extra pointer to the first "empty" member slot, the slots would act as a singly-linked list. Same for `QVector`. I wonder if such an api would find wider use. I've just looked through ~150k LOC of code that is built on top of Qt, and >60% of the uses of `QList` and small vectors don't in fact care about the order (!).
On Tue, Jul 21, 2015 at 5:55 AM, Bubke Marco <[email protected]> wrote: > > > > From: [email protected] > <[email protected]> on > behalf of Kevin Kofler <[email protected]> > > If you have large objects, and insert or remove items within the list, > > QVector will have to move (or even copy&delete, if they're not movable) > > large amounts of data. Unless you use a QVector<T*>, but that loses the > > value semantics in several places. And a QLinkedList is not an option if > you > > also need O(1) (or anything faster than O(n), even) item retrieval. > Pointer > > arrays have their advantages. > > It depends if you care about the order of the container. If you don't and > my > experience you don't care in many cases you can simply use std::remove_if > + erase > and being very efficient. > _______________________________________________ > Development mailing list > [email protected] > http://lists.qt-project.org/mailman/listinfo/development >
_______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
