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ß:
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:
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?