Ich habe einen Code, wo ich routinemäßig einen Vektor mit zwischen 0 und 5000 Elementen fülle. Ich weiß, dass das Maximum überschreitet nie 5000. Stattdessen Vektor mehrere Male von der Initialisierung, ich möchte nur einmalC++ schnellste Möglichkeit, einen Vektor zu löschen oder zu löschen
vector<struct> myvector;
myvector.reserve(5000);
jedoch tun, um den Vektor wieder zu füllen, habe ich zuerst den Vektor löschen, ohne seine Fähigkeit zu verändern. Normalerweise rufe ich myvector.clear() auf;
Dies ist eine O (n) -Operation. Gibt es etwas Einfaches, das ich tun kann, um die Leistung zu erhöhen, oder ist es das Beste, was es bekommen wird?
Wird den vorhandenen Elementen eine vernünftige Lösung zugewiesen? –
Nein, weil ich vielleicht 5000 Elemente beim ersten Mal und 3500 beim nächsten Mal hätte, und am Ende wären 1500 alte Elemente übrig ... – user788171
Ist die "Zerstörung" von Elementen ein Problem? –