Zählvariable, via Prefix o. Postfix erhöhen ?


  • Mod

    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++) oder BOOST_FOREACH .
    (oder ganz selten mal Iteratoren "zu Fuss", also ohne BOOST_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:

    http://en.wikipedia.org/wiki/C%2B%2B0x#Range-based_for-loop



  • 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...


Anmelden zum Antworten