<?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[Variable in Schleife oder außerhalb definieren?]]></title><description><![CDATA[<p>Hallo!</p>
<pre><code class="language-cpp">for(auto it = mFoos.begin(); it != mFoos.end(); ++it) {
   Foo* f = *it;
   f-&gt;bar();
}
</code></pre>
<p>2 Fragen zu dem Code:</p>
<p>Wäre die Schleife performanter, wenn ich die Variable f außerhalb der Schleife definiere?</p>
<p>Sollte ich das mFoos.end() ebenfalls aus der Schleife ziehen? Nicht das am Ende noch in jedem Durchlauf das end() aufgerufen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290336/variable-in-schleife-oder-außerhalb-definieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 15:10:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290336.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Jul 2011 16:36:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable in Schleife oder außerhalb definieren? on Sun, 24 Jul 2011 16:36:46 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<pre><code class="language-cpp">for(auto it = mFoos.begin(); it != mFoos.end(); ++it) {
   Foo* f = *it;
   f-&gt;bar();
}
</code></pre>
<p>2 Fragen zu dem Code:</p>
<p>Wäre die Schleife performanter, wenn ich die Variable f außerhalb der Schleife definiere?</p>
<p>Sollte ich das mFoos.end() ebenfalls aus der Schleife ziehen? Nicht das am Ende noch in jedem Durchlauf das end() aufgerufen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097246</guid><dc:creator><![CDATA[PerformanceFrager]]></dc:creator><pubDate>Sun, 24 Jul 2011 16:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Schleife oder außerhalb definieren? on Sun, 24 Jul 2011 16:38:12 GMT]]></title><description><![CDATA[<p>Das läuft alles aufs gleiche raus. Das end() solltest du rausziehen, falls dein Compiler und deine Zielplattform automatische Parallelisierung erlauben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097248</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Jul 2011 16:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Schleife oder außerhalb definieren? on Sun, 24 Jul 2011 16:38:41 GMT]]></title><description><![CDATA[<p>PerformanceFrager schrieb:</p>
<blockquote>
<p>Wäre die Schleife performanter, wenn ich die Variable f außerhalb der Schleife definiere?</p>
</blockquote>
<p>Nein, das ist hier völlig egal.</p>
<p>Und sonst ist innen meisten besser. Manchmal aber ist außen besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097249</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 24 Jul 2011 16:38:41 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Schleife oder außerhalb definieren? on Sun, 24 Jul 2011 16:47:56 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das end() solltest du rausziehen, falls dein Compiler und deine Zielplattform automatische Parallelisierung erlauben.</p>
</blockquote>
<p>Öh... das weiß ich ehrlich gesagt nicht. Ich benutze VS2010 auf Win7 64 Bit. Macht der Compiler da solche krassen Sachen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097250</guid><dc:creator><![CDATA[PerformanceFrager]]></dc:creator><pubDate>Sun, 24 Jul 2011 16:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Schleife oder außerhalb definieren? on Sun, 24 Jul 2011 16:48:22 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>falls dein Compiler und deine Zielplattform automatische Parallelisierung erlauben.</p>
</blockquote>
<p>Gibt es aktuelle Compiler, die das tun? Ohne <code>#pragma omp parallel for</code> ?</p>
<p>Je nachdem, was <code>f-&gt;bar()</code> tut, darf die Reihenfolge der Aufrufe gar nicht verändert werden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097251</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 24 Jul 2011 16:48:22 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Schleife oder außerhalb definieren? on Sun, 24 Jul 2011 17:05:00 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>falls dein Compiler und deine Zielplattform automatische Parallelisierung erlauben.</p>
</blockquote>
<p>Gibt es aktuelle Compiler, die das tun? Ohne <code>#pragma omp parallel for</code> ?</p>
<p>Je nachdem, was <code>f-&gt;bar()</code> tut, darf die Reihenfolge der Aufrufe gar nicht verändert werden...</p>
</blockquote>
<p>Der Intelcompiler macht das in der neuesten Version (12) so halbautomatisch, schlägt einem zumindest vor, welche pragmas man einfügen sollte. Und auch den Tipp mit dem end-rausziehen. Ist aber soweit ich weiß der einziger, der das macht.</p>
<p>Das end im Schleifenkopf kann eventuell auch automatische Vectorisierung verhindern, da müsste ich mal genauer nachforschen ob das etwas ausmacht. Vectorisierung können viele Compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097254</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 24 Jul 2011 17:05:00 GMT</pubDate></item></channel></rss>