Zählvariable, via Prefix o. Postfix erhöhen ?
-
antialias schrieb:
Also ich finde fast 5% Performanceunterschied nicht zu verachten. Besonders wenn man an zeitkritischen Applikationen arbeitet.
Außerdem ist es ein vector-Iterator. Das ist ja praktisch nur ein gekapselter Zeiger. Bei komplizierteren Iteratoren wie dem von map*, könnte ich mir vorstellen, dass der Unterschied sogar noch größer als 5% ist, weil die Optimierung komplizierter ist.
*: Bloß geraten, dass der kompliziert ist, kenne die Implementierung nicht. Jedenfalls wird es doch sicherlich Iteratoren geben, deren Zustand aus mehr als nur einem Pointer besteht.
-
Sequenzen iteriert man im allgemeinen sowieso per for_each und transform.
-
dineki89 schrieb:
Sequenzen iteriert man im allgemeinen sowieso per for_each und transform.
nur in Spezialfällen, wenn man bereits alle Funktionen fertig rumfliegen hat. Im Allgemeinen ist for_each häßlicher als eine for-Schleife, wenn man erstmal einen Funktor zusammenbasteln muss.
-
dineki89 schrieb:
Sequenzen iteriert man im allgemeinen sowieso per for_each und transform.
Ich mache das nie, viel zu mühsam. Ich glaube auch nicht dass "man" das "im allgemeinen" so macht.
Ich verwende
for(size_t i ... i < ... i++)oderBOOST_FOREACH.
(oder ganz selten mal Iteratoren "zu Fuss", also ohneBOOST_FOREACH)
-
otze schrieb:
dineki89 schrieb:
Sequenzen iteriert man im allgemeinen sowieso per for_each und transform.
nur in Spezialfällen, wenn man bereits alle Funktionen fertig rumfliegen hat. Im Allgemeinen ist for_each häßlicher als eine for-Schleife, wenn man erstmal einen Funktor zusammenbasteln muss.
Da dürfte sich mit den Lambdas von C++0x einiges Ändern.
BTW: War jmd. in Rapperswil den Bjarne und Herb Sutter gucken?
-
theta schrieb:
otze schrieb:
dineki89 schrieb:
Sequenzen iteriert man im allgemeinen sowieso per for_each und transform.
nur in Spezialfällen, wenn man bereits alle Funktionen fertig rumfliegen hat. Im Allgemeinen ist for_each häßlicher als eine for-Schleife, wenn man erstmal einen Funktor zusammenbasteln muss.
Da dürfte sich mit den Lambdas von C++0x einiges Ändern.
Wie willst du den mit Lambdas das for_each verbessern?
BTW: War jmd. in Rapperswil den Bjarne und Herb Sutter gucken?
Natürlich nicht.
-
www schrieb:
theta schrieb:
otze schrieb:
dineki89 schrieb:
Sequenzen iteriert man im allgemeinen sowieso per for_each und transform.
nur in Spezialfällen, wenn man bereits alle Funktionen fertig rumfliegen hat. Im Allgemeinen ist for_each häßlicher als eine for-Schleife, wenn man erstmal einen Funktor zusammenbasteln muss.
Da dürfte sich mit den Lambdas von C++0x einiges Ändern.
Wie willst du den mit Lambdas das for_each verbessern?
Dadurch, dass keine Funktoren mehr nötig sind, welche (Codierungs) Overhead mitbringen und nicht so lokal wie gwünscht sind.
-
Bei C++0x kann man auch gleich die "range-based for"-Schleife nehmen:
-
theta schrieb:
Wie willst du den mit Lambdas das for_each verbessern?
Dadurch, dass keine Funktoren mehr nötig sind, welche (Codierungs) Overhead mitbringen und nicht so lokal wie gwünscht sind.
Dadurch wird for_each auch nicht viel besser, sieht nur total kryptisch aus. range-based for sieht schon viel besser aus.
-
wie du meinst...