Pre- oder Post-Inkrementierung bei for-Schleifen?


  • Mod

    314159265358979 schrieb:

    Kein einziger von euch hat verstanden, worauf ich eigentlich hinaus will, obwohl es doch so offensichtlich ist. Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ich freue mich schon auf Flames ala "Du siehst deine Meinung als einzig richtige an blafu", aber ist nunmal so, dass meine die einzig logisch sinnvolle und begründbare ist.

    Das kann ja sein. Nur geht der Vorwurf, man sei nicht schlau genug, um etwas zu verstehen, ins Leere.
    Umgekehrt wird ein Schuh draus: du solltest dich auf unser Niveau herunterdenken, damit eine produktive Diskussion entstehen kann.



  • Michael E. schrieb:

    Es geht hier - wie schon mehrmals erwähnt wurde - um das alleinstehende Inkrementieren.

    Ach, dann. Wie Otze schon sagte, wird das ja wegoptimiert, also ist es ja im Endeffekt bei der Schleife vollständig Egal. Ich dachte, dass eine Funktion ala

    const myclass operator++(int)
    {
        return ++*this - 1;
    }
    

    in einer Schleife zusätzlichen Kopieraufwand bedeutet.



  • @hacker: So wie Du geschrieben hast, ist es richtig. Prä-Inc gibt eine Referenz zurück, Post-Inc eine Kopie. Geht auch nicht anders, da bei Post-Inc ja eine Änderung stattfindet, die beim zurück Gegebenen nicht sichbar sein soll.



  • Ein sehr dubioses Thema



  • 314159265358979 schrieb:

    Kein einziger von euch hat verstanden, worauf ich eigentlich hinaus will, obwohl es doch so offensichtlich ist. Wenn man i++ sieht, sollte der erste Gedanke sein "Wofür wird hier der Rückgabewert gebraucht". Zumindest bei mir ist das so. Wenn ihr nicht so denkt, ist das euer Fehler.

    Ich hab schon lange verstanden worauf du hinaus willst und frage mich dann immer, was ist eigentlich der Rückgabewert von i++ bei int und vorallem welcher Hansel hat den ++ Operator für int überladen?



  • 7xCore schrieb:

    Was ist dan der Aussage von PI arrogant?

    Es ist einfach lächerlich, wie toll er sich vor kommt, nur weil er ein bisschen was bei solchen Anfängerthemen weiß. Sobald er bei einem komplizierteren Thema mitreden will, merkt man, dass er garkeine Erfahrung hat.



  • Ach, mit hohem IQ kann man nen zunächst niedrigen EQ durch bewusstes Üben super verbessern. Das bekommt er sicher noch hin. 👍



  • Solche Threads sind immer wieder genial 🤡



  • Meine Meinung:
    Wenn der Rückgabewert nicht gebraucht wird (unsere Situation) gibt's nie ne situation bei der postfix schneller ist als präfix. Wenn man sichs nachdenken also sparen will ist immer präfix die bessere Variante. Auch kann der compiler nicht unbedingt jeden operator++ call inlinen, vorallem wenn die Funktion größer ist, meines wissens erhöht das mit der code-größe auch die misses vom code cache, und würde irgendwann das ganze langsamer machen.

    Weiter, um Stroustrup sinngemäß wiederzugeben, könnte es sein das operator++ gar nicht implementiert wird, weil es deutlich langsamer ist - damit fängt man sich nicht nur inkonsistenzen im coding stil ein, sondern falls man mal von einer Klasse auf eine andere wechseln will, muss man durch den code gehen und alle fälle von postfix zu präfix ändern. Eine Sache die man sich gespart hätte, hätte man gleich präfix genommen.

    Letztendlich ist der einzige "Vorteil" von postfix nur, das es einige schon immer so gemacht haben. Weil dass es tatsächlich besser sei, dafür argumentiert hier ja nichtmal jemand.



  • afaik ist PI schwul, was seinen Niedrig-IQ erklärt



  • Hakker schrieb:

    afaik ist PI schwul, was seinen Niedrig-IQ erklärt

    Nö wieso, er hat einen prof. getesteten IQ von 133 (meinte er mal), also seh ich das nicht ein. Außerdem bist du geistlich weit zurückgeblieben, wenn du so untolerant gegenüber homosexuellen bist (das ist nähmlich 6. Klasse, "Hey du Schwuchtel!"). Wahrscheinlich bist du selbst schwul. Und jetzt lass es bitte, das ist OT und pumuckl kommt dann wieder an und hält uns eine Predigt über Moral in Foren (womit er prinzipiell Recht hat).



  • @Hakker: Wenn ich mich recht erinner, gibts statistisch sogar eine positive Korrelation zwischen IQ und Wert auf der Kinsey-Skala.

    @pumuckl: Sorry, aber postmodern betrachtet ist auch Forenmoral subjektiv. 😉



  • Hacker schrieb:

    Außerdem bist du geistlich weit zurückgeblieben, wenn du so untolerant gegenüber homosexuellen bist

    Ich nehme an du meinst "geistig zurückgeblieben", denn "geistlich" ist er ganz weit vorn in dem Punkt 😉



  • Tim schrieb:

    Hacker schrieb:

    Außerdem bist du geistlich weit zurückgeblieben, wenn du so untolerant gegenüber homosexuellen bist

    Ich nehme an du meinst "geistig zurückgeblieben", denn "geistlich" ist er ganz weit vorn in dem Punkt 😉

    wird er eh wieder 89327128903 editieren.... dann ist alles gut



  • Was hier in dem Forum abgeht ist teilweise richtig lächerlich. Sobald 31415... irgendwas postet, kommt der Anti-PI Trupp und zerlegt seinen Post bis auf den Beistrich. Und wehe dieser ist falsch gesetzt, dann wird gleich einmal schön geflamed.

    Auf der anderen Seite bin ich auch der Meinung das manche Posts von 31415... überheblich rüber kommen. Allerdings sollte man als erwachsener Mensch solche Dinge auch einfach ignorieren können.

    Jeder 5te Thread ist eine Zumutung für Leute die hier her kommen um Hilfe in Anspruch zu nehmen. Jeder Post wird bis aufs kleinste Detail zerpflückt und kritisiert, auch wenn oft das Gesagte ohnehin verstanden wurde. Raus kommen dann Diskussionen wie:

    A: "Der Code kompiliert nicht, da du in deinem Beispielcode beim Kommentar einen Slasch vergessen hast."

    B: "Slash schreibt man ohne c ... 🙄 ."

    Auch die Diskussion hier über Prä und Post hätte nicht entstehen müssen, da wie ihr ja im Endeffekt zugebt, verstanden habt auf was 31415.. hinaus wollte. Einzig und alleine wie er es geschrieben hat war euch ein Dorn im Auge.

    Ich hoffe, dass man sich in Zukunft wieder den Fragen der Leute widmen kann und über etwaige Rechtschreib- / Grammatikfehler und Banalitäten in Beispielcodes hinweg sehen kann.



  • LustigesForum schrieb:

    Auch die Diskussion hier über Prä und Post hätte nicht entstehen müssen, da wie ihr ja im Endeffekt zugebt, verstanden habt auf was 31415.. hinaus wollte. Einzig und alleine wie er es geschrieben hat war euch ein Dorn im Auge.

    Nein, ich empfinde die Aussage immer noch als falsch. Also nicht wie er es geschrieben hat, sondern explizit was er geschrieben hat.



  • Dem schliesse ich mich an!
    i++;

    und
    ++i;

    drücken dasselbe aus (meine ich), weil es hier auf den Rückgabewert überhaupt nicht ankommt, PI hingegen sieht in den beiden Ausdrücken eine unterschiedliche Bedeutung ...



  • Verstehe ich es jetzt richtig:

    Wenn das Präfix-/Postfix- Inkrement/Dekrement in einer eigenen Zuweisung steht, oder einer solchen, die unabhängig vom Rückgabewert derer ist, so macht es technisch gesehen keinen Unterschied; lediglich die Performance könnte leiden, tut sie aber nicht da der Compiler (der hoffentlich mehr oder weniger intelligent ist) die in diesem Kontext unnötigen, kopierenden Code-Teile wegoptimiert (wie otze bereits erklärt hat).

    Es ist lächerlich, an PI's oder irgendjemandes Aussage Kritik zu üben, oder - wie PI- überhaupt so etwas (auf diese Art und Weise) zu schreiben, da es Geschmackssache ist. Ich, Hacker, finde bspw. das Präfix besser, aber im oben gezeigten Fall macht es -wie gesagt- im Endeffekt keinen Unterschied. Wenn es nähmlich einen macht, wird es zu einer ganz anderen Frage: Nicht der, was für eine Rolle es in for-Schleifen spielt!



  • Edit: Ach, mir wirds zu blöd.



  • LustigesForum schrieb:

    Jeder 5te Thread ist eine Zumutung für Leute die hier her kommen um Hilfe in Anspruch zu nehmen. Jeder Post wird bis aufs kleinste Detail zerpflückt und kritisiert, auch wenn oft das Gesagte ohnehin verstanden wurde. Raus kommen dann Diskussionen wie:

    A: "Der Code kompiliert nicht, da du in deinem Beispielcode beim Kommentar einen Slasch vergessen hast."

    B: "Slash schreibt man ohne c ... 🙄 ."

    Nicht zu vergessen der ganze Schwachsinn um void main, System("cls"), "math.h", ... der wieder und wieder und wieder diskutiert wird.

    Es ist vollkommen lächerlich wie sich manche hier am Standard und der Propagierung ihres Programmierstils aufgeilen und zur Problemlösung wenig beitragen. Macht echt keine Lust mehr hier zu lesen.


Anmelden zum Antworten