<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[optimierung?]]></title><description><![CDATA[<p>hi,</p>
<p>kann man in folgendem code das optimieren, was in main() steht?</p>
<pre><code class="language-cpp">int n=7, p=5;
int f(int x) {n+=x;}
int main()
{
   int a=p;
   p=n;
   n=f(a);
}
</code></pre>
<p>... =&gt; das ist wirklichkeit eine aufwendigere berechnung, wo der inhalt von main in einer schleife steht...<br />
aber so vom prinzip her? sowas wie n=f(p=n) oder so? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> weil n und p sind instanzen von klassen, die sehr viel speicher brauchen...</p>
<p>wäre nett,<br />
lw</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136796/optimierung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 14:01:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136796.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Feb 2006 12:04:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 12:04:46 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>kann man in folgendem code das optimieren, was in main() steht?</p>
<pre><code class="language-cpp">int n=7, p=5;
int f(int x) {n+=x;}
int main()
{
   int a=p;
   p=n;
   n=f(a);
}
</code></pre>
<p>... =&gt; das ist wirklichkeit eine aufwendigere berechnung, wo der inhalt von main in einer schleife steht...<br />
aber so vom prinzip her? sowas wie n=f(p=n) oder so? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> weil n und p sind instanzen von klassen, die sehr viel speicher brauchen...</p>
<p>wäre nett,<br />
lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992974</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Mon, 13 Feb 2006 12:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 12:14:03 GMT]]></title><description><![CDATA[<p>statt den inhalt zu verschieben, könntest du pointer benutzen.</p>
<p>wenn das verschieben von großen datenmengen das prob ist, wäre das ein guter workaround.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/992984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/992984</guid><dc:creator><![CDATA[rapso]]></dc:creator><pubDate>Mon, 13 Feb 2006 12:14:03 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 12:41:03 GMT]]></title><description><![CDATA[<p>naja...wenn ich jetzt sagen wir mal <em>a</em> einen pointer auf <em>p</em> werden lasse und dann <em>p</em> ändere, dann zeigt ja <em>a</em> trotzdem nur auf <em>p</em>, und dessen inhalt hat sich ja geändert, wenn ich dann f(a) aufrufe, so dass der ursprüngliche wert von p also trotzdem verloren wäre.</p>
<p>ich bräuchte also eine möglichkeit, dem compiler mitzuteilen, dass er f(p) berechnen und das ergebnis in n speichern soll, &quot;zwischenzeitlich&quot; aber noch den alten wert von n in p speichern soll, bevor dieser von n=f(p) überschrieben wird.<br />
wenn ich aber p=n einfach so vorausstelle, dann würde der wert von p verloren gehen und f(p) würde im enteffekt f(n) berechnen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>und da hab ich mich halt gefragt, ob das wirklich nicht irgendwie besser geht als diese art 'dreieckstausch'. weil es sich hier wirklich um große datenmengen handelt und dieser codeabschnitt in der schliefe sehr oft durchlaufen wird. außerdem sind ja das ja wie erwähnt klassen, die bei jedem schleifendurchaluf auch (de+)konstruiert etc. werden müssen...</p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993016</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Mon, 13 Feb 2006 12:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 12:48:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">p=n;
n=f(p);
</code></pre>
<p>ist imho die schnellste Variante, die mir einfällt - wenn du wirklich beide Werte parallel benötigst, bleibt dir nichts anderes übrig als sie zu kopieren.</p>
<p>Aber eventuell kannst du deinen Algorithmus ja so umstellen, daß du nach der n=f(n) Berechnung den früheren Wert von n nicht mehr benötigst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993025</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 13 Feb 2006 12:48:26 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 12:53:36 GMT]]></title><description><![CDATA[<blockquote>
<p>deinen Algorithmus ja so umstellen, daß du nach der n=f(n) Berechnung den früheren Wert von n nicht mehr benötigst</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> würd ich gerne, aber gerade n soll der algor. ja berechnen *GG*</p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993031</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Mon, 13 Feb 2006 12:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 13:01:06 GMT]]></title><description><![CDATA[<p>Lawilog schrieb:</p>
<blockquote>
<blockquote>
<p>deinen Algorithmus ja so umstellen, daß du nach der n=f(n) Berechnung den früheren Wert von n nicht mehr benötigst</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> würd ich gerne, aber gerade n soll der algor. ja berechnen *GG*</p>
</blockquote>
<p>Aber benötigst du irgendwo in deinem Algorithmus den alten UND neuen Wert von n an einer Stelle? Wenn nein, kannst du alle Zugriffe auf den alten Wert vor und alle Zugriffe auf den neuen Wert nach &quot;n=f(n);&quot; unterbringen.</p>
<p>(just for Info: Was für ein Algo soll denn das werden?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993037</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 13 Feb 2006 13:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 13:44:34 GMT]]></title><description><![CDATA[<blockquote>
<p>benötigst du irgendwo in deinem Algorithmus den alten UND neuen Wert von n</p>
</blockquote>
<p>der alte wert von n wird dann in ein array geschrieben (hier: <em>p</em>) und beim nächsten schleifen-durchlauf wieder benötgt. - brauche wie gesagt nicht f(n) sondern f(p)</p>
<blockquote>
<p>just for Info: Was für ein Algo soll denn das werden?</p>
</blockquote>
<p>is quasi just for fun, aber ich hab das gefühl, dass ich mich sowas öfter frage.</p>
<p>es leuchtet mir allerdings ein, dass ich - wenn ich die alten werte brauche -sie zwischenzeitlich irgendwo speichern muss und mir dann nichts anderes übrig bleibt, als den speicher komplett zu kopieren. ich werde es also so lassen wie es ist. wenn jemand noch eine gute idee hat, würd ich sie trotzdem gerne hören <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993077</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Mon, 13 Feb 2006 13:44:34 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 13:50:49 GMT]]></title><description><![CDATA[<p>Lawilog schrieb:</p>
<blockquote>
<p>der alte wert von n wird dann in ein array geschrieben (hier: <em>p</em>) und beim nächsten schleifen-durchlauf wieder benötgt. - brauche wie gesagt nicht f(n) sondern f(p)</p>
</blockquote>
<p>Nach der Anweisung &quot;p=n;&quot; steht doch in p und n der selbe Wert, also ist das egal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>(PS: Falls du darüber gestolpert sein solltest &quot;n=f(n);&quot; ist keine mathematische Gleichung, die dein Programm errechnen soll, sondern eine Zuweisung (berechne f(n) und überschreibe n mit dem Ergebnis der Berechnung))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993082</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 13 Feb 2006 13:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to optimierung? on Mon, 13 Feb 2006 16:19:48 GMT]]></title><description><![CDATA[<p>CStoll (off) schrieb:</p>
<blockquote>
<p>Nach der Anweisung &quot;p=n;&quot; steht doch in p und n der selbe Wert, also ist das egal ;)))</p>
</blockquote>
<p>...ja doch. aber ich will f(p) berechnen, nicht f(n) deshalb hab ich ja in dem beispiel auch f(a) genommen (und in a vorher den wert von p gespeichert, bevor es mit dem wert n überschrieben wurde), weil er eben sonst f(n) berechnen würde und...ach ließ einfach mal den threat.</p>
<blockquote>
<p>(PS: Falls du darüber gestolpert sein solltest &quot;n=f(n);&quot; ist keine mathematische Gleichung, die dein Programm errechnen soll, sondern eine Zuweisung (berechne f(n) und überschreibe n mit dem Ergebnis der Berechnung))</p>
</blockquote>
<p>so gesagt: gewisser analogien in diesem beipsiel zu trotz, bin ich mir der unterschiedschiede durchaus bewusst.</p>
<p>lw</p>
]]></description><link>https://www.c-plusplus.net/forum/post/993213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/993213</guid><dc:creator><![CDATA[Lawilog]]></dc:creator><pubDate>Mon, 13 Feb 2006 16:19:48 GMT</pubDate></item></channel></rss>