QList vs QVector überarbeitet

Meine Frage ist im Grunde, wann man @ wähQVector und wann wählen SieQList als Qt-Container. Was ich schon weiß:

Qt docs:QList class

Für die meisten Zwecke ist QList die richtige Klasse. Die indexbasierte API ist praktischer als die iteratorbasierte API von QLinkedList und in der Regel schneller als QVector, da die Elemente im Speicher abgelegt werden. Es wird auch zu weniger Code in Ihrer ausführbaren Datei erweitert.

Das gleiche wie geschrieben ist dieses sehr beliebte Q & A:QVector vs QList. Es bevorzugt auch QList.

Aber: Auf dem letzten Qt World Summit 2015 präsentierte KDAB "Warum QList schädlich ist", dies ist im Grunde hier:

QList als schädlich angesehen

Verwenden Sie nicht QList, sondern Q_DECLARE_TYPEINFO

Soweit ich weiß, ist die Idee, dassQList für fast alle Typen ist ineffizient, wenn neue Elemente in Heap zugewiesen werden. Jedes Mal, wenn Sie ein neues Element hinzufügen, wird @ aufgerufenew (einmal pro Element) und das ist ineffizient im Vergleich zuQVector.

Deswegen versuche ich jetzt zu verstehen: ist esQVector was sollten wir als Standardcontainer wählen?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage