Im Ernst, es sei denn, Sie tatsächlich zu rufen Nachinkrement statt Prä-Inkrement der Leistungsunterschied WILL NUR MATTER IN SEHR seltenen Fällen Leistungsprobleme aufgrund haben.
aktualisiert
Zum Beispiel, wenn Ihre Software ist eine Klimasimulation und operator++
bewirkt, dass die Simulation einen Schritt vorwärts bewegen (dh ++simulation
gibt Ihnen den nächsten Schritt in der Simulation, während simulation++
erstellt eine Kopie des aktuellen Schritts in der Simulation, führt die Simulation fort und übergibt Ihnen dann die Kopie), dann wird die Leistung ein Problem sein.
Realistischer, in einem Kommentar erwähnt der ursprüngliche Fragesteller, dass wir ein eingebettetes Projekt mit (scheinbar) Echtzeitanforderungen diskutieren. In diesem Fall müssen Sie sich Ihre spezifische Implementierung ansehen.Ich bezweifle ernsthaft, dass Sie merkliche Verlangsamungen haben werden, die durch eine std::vector
mit Post-Inkrement anstelle von Pre-Inkrement durchlaufen, obwohl ich keine STL-Implementierung in dieser Angelegenheit Benchmarking.
Wählen Sie aus Leistungsgründen nicht den anderen. Wählen Sie eines aus Gründen der Klarheit/Wartung aus. Persönlich setze ich das Vorinkrementieren fort, weil es mir im Allgemeinen egal ist, was der Wert vor dem Inkrementieren war.
Wenn Ihr Gehirn explodiert, wenn Sie ++i
statt i++
sehen, kann es Zeit sein, in eine andere Arbeitslinie zu gehen.
Ziemlich nah an ein Duplikat von http://stackoverflow.com/questions/24901/is-there-a-performance-difference-between-i-and-i-in-c. Diese Frage spezifiziert Iteratoren, während die verknüpfte Frage allgemeiner ist. – Eclipse
Danke, dass Link eine gute Antwort hat. – Matt