Werte aus einem Bereich addieren
-
scheint mir jetzt in dem zusammenhang etwas kompliziert.
gibt es keine funktion, bei der ich soz.:
(int startwert, int endwert)
angebe und dann alle diese werte z.b. auf 100 addieren kann?
quasi bei (0, 10) bekomme ich dann 100, 101, 102, ..., 110 ? gibts da nichts?
auf jeden fall brauch ich diese werte "sofort", will da sowas ähnliches wie "breakout" oder "pingpong" machen und brauch da eben die werte, damit der ball "abprallt"
-
Schau dir mal accumulate aus <algorithm> an.
[Edit] Achso, dafür brauchste keine Funktion, dafür musst du nur nach Gauß rechnen.
-
Ich glaub dein roblem lässt sich am besten mit ner schleife lösen
du gibtst den startwert vor und die endbedienung zählst jedesmal 100 dazu und speicherst das ganze in einem array.
-
Wenn Du immer ganze Intervallen betrachtest kannst Du natürlich weiter in der Schreibweise bleiben: [0,10] und 100 addieren auf jedes Element gibt [100,110] es würde also genügen sich das erste und letzte Element zu merken.
Wenn Du mehr Freiheit brauchst kannst Du die Daten ja in nem std::vector ablegen und Dir nen functor schreiben, der die Manipultation vornimmt. Dann einfach mit std::transform drübergehen.
-
Er hat aber oben geschrieben, dass er gleich alle Werte berechnen will, und nicht erst Schleifen durchlaufen lassen will.
Mfg Ominion
-
Was soll denn bitte "gleich" sein?
-
Durch die Schleife entsteht doch eine kleine Verzögerung. Und die will er anscheinend umgehen.
Mfg Ominion
-
Das passiert bei jeder berechnung.
Er kann statt einer schleife auch das ganze per copy&paste hintereinandersetzten;
ändern tut sich dadurch ncihts.
-
Sag das ihm nicht mir!

Mfg Ominion
-
er hat es gelesen

also gibts sowas direkt nicht, muss ich mal weiter gucken oder hässliches copy-paste benutzen
trotzdem danke an alle
-
Im <numeric>-Header gibt es auch einen Algorithmus partial_sum() - den mußt du nur noch mit einem passenden Generator-Iterator (für die Ausgangswerte, mußt du möglicherweise selber schreiben) und einem Inserter (als Ziel) versorgen und schon kann es losgehen.