std::vector<>::reserve
-
Das ist jetzt ein wenig off-topic und kann meinet wegen auch verschoben werden: Hat jemand reserve schonmal gewinnbringend eingesetzt? In allen meinen bisherigen Experimenten, in denen ich dachte reserve könnte was bringen hat es meinen Code nur langsamer gemacht.
In meinem letzten Fall wusste ich, das maximal eine gewisse Anzahl von objekten im Container landen. Also habe ich entsprechend reserviert. Das ergebniss war, dass das Programm mit dm MSVC statt 16.5 jetzt 20.2 sekunden braucht (druchscnitt aus je drei Läufen). Beim gcc siehts besser aus aber auch nicht toll. Statt 15.3 ohne jetzt 16.6 mit.
ei einem Weiteren Versuch nur halb so viel zu reservieren, wie benötigt wird, da ich schätze, das im Durchschnitt etwa die hälfte vom Maximalwert belegt sein wird lag der Zeitverbrauch bei 15.4 (gcc), was ich als genauso schnell, wie ohne ansehe.Auch früher hatte ich schon ähnliche Fälle.
-
Also ich kann da nur mutmaßen, aber vector reserviert ja selbstständig etwas Speicher beim instanziieren, oder? Vielleicht hat der ja in deinen Fällen schon gereicht und die Anforderung hat es nur noch ausgebremst.