<?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[Inkrement-Operator in for-Schleife]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe bei einer von mir betreuten Doktorandin folgendes Codefragment gesehen:</p>
<pre><code class="language-cpp">for (map&lt;int, ConsColumnProfile*&gt;::const_iterator it=++cons_col_profs.begin(); it != --cons_col_profs.end(); ++it) { 
    ...
}
</code></pre>
<p>Ich frage mich nun, ob es sinnvoll ist, wie hier gemacht,</p>
<pre><code class="language-cpp">++cons_col_profs.begin()
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">cons_col_profs.begin() + 1
</code></pre>
<p>zu schreiben (ist ja geringfuegig kuerzer).</p>
<p>Von daher: Wuerdet ihr das so machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/241017/inkrement-operator-in-for-schleife</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 20:40:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/241017.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 May 2009 16:04:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Inkrement-Operator in for-Schleife on Thu, 14 May 2009 16:04:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe bei einer von mir betreuten Doktorandin folgendes Codefragment gesehen:</p>
<pre><code class="language-cpp">for (map&lt;int, ConsColumnProfile*&gt;::const_iterator it=++cons_col_profs.begin(); it != --cons_col_profs.end(); ++it) { 
    ...
}
</code></pre>
<p>Ich frage mich nun, ob es sinnvoll ist, wie hier gemacht,</p>
<pre><code class="language-cpp">++cons_col_profs.begin()
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">cons_col_profs.begin() + 1
</code></pre>
<p>zu schreiben (ist ja geringfuegig kuerzer).</p>
<p>Von daher: Wuerdet ihr das so machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1710576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1710576</guid><dc:creator><![CDATA[ingobulla]]></dc:creator><pubDate>Thu, 14 May 2009 16:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement-Operator in for-Schleife on Thu, 14 May 2009 16:06:05 GMT]]></title><description><![CDATA[<p>Das dürfte nur bei RandomAccess-Iteratoren funktionieren, hier also (=&gt; map) nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1710577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1710577</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 14 May 2009 16:06:05 GMT</pubDate></item><item><title><![CDATA[Reply to Inkrement-Operator in for-Schleife on Thu, 14 May 2009 16:25:19 GMT]]></title><description><![CDATA[<p>ingobulla schrieb:</p>
<blockquote>
<pre><code class="language-cpp">for (map&lt;int, ConsColumnProfile*&gt;::const_iterator it=++cons_col_profs.begin(); it != --cons_col_profs.end(); ++it) { 
    ...
}
</code></pre>
</blockquote>
<p>Hier werden alle Elemente (eigtl nur vom 2. bis vorletzten) durchgegangen - ich würds aber nicht so machen. ma abgesehen davon, dass es schwachsinn ist - weil die map leer sein könnte (und ich dann zugriffsfehler bekomm) und ich nich versteh, warum man die äußeren Elemente nie brauchen sollte, aber ok...<br />
Und wenn die Fragen beantwortet sind, kenn ich relativ wenige Fälle, in denen man ne map (komplett) durchgehen muss - wenn das häufiger vorkommt, sollte man evtl nen anderen Container wählen ^^</p>
<p>ingobulla schrieb:</p>
<blockquote>
<p>Ich frage mich nun, ob es sinnvoll ist, wie hier gemacht,</p>
<pre><code class="language-cpp">++cons_col_profs.begin()
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">cons_col_profs.begin() + 1
</code></pre>
<p>(ist ja geringfuegig kuerzer)</p>
</blockquote>
<p>also für mich ist +1 länger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
und langsamer ist das erste auch auf keinen Fall...<br />
Wenn man das zweite schreiben möchte, müsste man scho <a href="http://www.cplusplus.com/reference/std/iterator/advance/" rel="nofollow">std::advance</a> nutzen - ansonsten braucht man wie gesagt random access iteratoren - und die haben die wenigsten Container ^^</p>
<p>bb</p>
<p>PS:<br />
je nach dem, was du nun wirklich möchtest - angenommen, du möchtest alle objekte durchgehen, dann würd ichs so schreiben:</p>
<pre><code class="language-cpp">typedef map&lt;int, ConsColumnProfile*&gt; ProfileContainer;

for (ProfileContainer::const_iterator i(cons_col_profs.begin()), e(cons_col_profs.end()); i != e; ++i)
{
    //...
}
</code></pre>
<p>edit: stoiber-satz beseitigt ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1710582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1710582</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 14 May 2009 16:25:19 GMT</pubDate></item></channel></rss>