<?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[list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen.]]></title><description><![CDATA[<p>Hallo!</p>
<p>Wie kann man einen Iterator auf eine Liste über den gesamten Bereich mit<br />
Ausnahme des letzten Elements laufen lassen? Drei Möglichkeiten fallen mir<br />
ein (lPolygon.size() ist 2 oder mehr):</p>
<pre><code class="language-cpp">// Geht nicht, warum eigentlich?
	for(list&lt;Border&gt;::iterator it=lPolygon.begin();it+1!=lPolygon.end();++it)
	{
	}

	// Ineffizient, da distance(it,lPolygon.end()) einen linearen Aufwand bedeutet.
	for(list&lt;Border&gt;::iterator it=lPolygon.begin();distance(it,lPolygon.end())&gt;1;++it)
	{
	}

	// Geht, ist aber nicht sehr elegant
	unsigned ctr(0);
	for(list&lt;Border&gt;::iterator it=lPolygon.begin();ctr&lt;lPolygon.size()-1;++it,++ctr)
	{
	}
</code></pre>
<p>Gibts da noch eine saubere Möglichkeit, ähnlich der ersten oben, die nicht<br />
geht?</p>
<p>Danke, lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293057/list-lt-x-gt-iterator-bis-knapp-vors-ende-laufen-lassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 13:11:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293057.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Sep 2011 10:34:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 10:34:04 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Wie kann man einen Iterator auf eine Liste über den gesamten Bereich mit<br />
Ausnahme des letzten Elements laufen lassen? Drei Möglichkeiten fallen mir<br />
ein (lPolygon.size() ist 2 oder mehr):</p>
<pre><code class="language-cpp">// Geht nicht, warum eigentlich?
	for(list&lt;Border&gt;::iterator it=lPolygon.begin();it+1!=lPolygon.end();++it)
	{
	}

	// Ineffizient, da distance(it,lPolygon.end()) einen linearen Aufwand bedeutet.
	for(list&lt;Border&gt;::iterator it=lPolygon.begin();distance(it,lPolygon.end())&gt;1;++it)
	{
	}

	// Geht, ist aber nicht sehr elegant
	unsigned ctr(0);
	for(list&lt;Border&gt;::iterator it=lPolygon.begin();ctr&lt;lPolygon.size()-1;++it,++ctr)
	{
	}
</code></pre>
<p>Gibts da noch eine saubere Möglichkeit, ähnlich der ersten oben, die nicht<br />
geht?</p>
<p>Danke, lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123201</guid><dc:creator><![CDATA[bts2]]></dc:creator><pubDate>Sat, 24 Sep 2011 10:34:04 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 10:45:35 GMT]]></title><description><![CDATA[<p>List-Iteratoren sind bidirektional, du kannst einfach 1 von end() abziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123206</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 24 Sep 2011 10:45:35 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 10:52:18 GMT]]></title><description><![CDATA[<p>bts2 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// Geht nicht, warum eigentlich?
	for(list&lt;Border&gt;::iterator it=lPolygon.begin();it+1!=lPolygon.end();++it)
	{
	}
</code></pre>
</blockquote>
<p>Weil es kein Random Access Iterator ist. Nur die haben + und - Operatoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123209</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sat, 24 Sep 2011 10:52:18 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 10:58:38 GMT]]></title><description><![CDATA[<p>hol dir doch vorher den iterator auf das letzte element, dekremetier den und nim den dann als vergleichs element</p>
<pre><code class="language-cpp">list&lt;Border&gt;::iterator endIt = lPolygon.end();
endIt -- ;
for(list&lt;Border&gt;::iterator it = lPolygon.begin(); it != endIt; ++it)
{
    // ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2123212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123212</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 24 Sep 2011 10:58:38 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 11:03:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">endIt -- ;
</code></pre>
<p>Endlich jemand, der genu Leerzeichen schreibt.<br />
Da fehlen aber noch welche!</p>
<pre><code class="language-cpp">list &lt; Border &gt; :: iterator endIt = lPolygon . end ( ) ;
</code></pre>
<p>Warum Postinkrement?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123213</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 24 Sep 2011 11:03:26 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 12:12:11 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Endlich jemand, der genu Leerzeichen schreibt.<br />
Da fehlen aber noch welche!</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>volkard schrieb:</p>
<blockquote>
<p>Warum <strong>Postinkrement</strong>?</p>
</blockquote>
<p>Willst ihn absichtlich verwirren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123224</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sat, 24 Sep 2011 12:12:11 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 13:31:26 GMT]]></title><description><![CDATA[<p>ne das zweite leerzeichen (also das zwischen -- und <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="😉"
    /> war unabsichtlich. es eh egal...</p>
<p>und ob post- oder prä- in/de-krement ist auch egal fürs beispiel, das soll der TE selsbt entscheiden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123248</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 24 Sep 2011 13:31:26 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 13:50:57 GMT]]></title><description><![CDATA[<p>Du musst nur den Iterator mit richtig viel Gefühl vorwärts schupsen, damit er nicht gleich gegen das Ende knallt. Erfordert etwas Übung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123250</guid><dc:creator><![CDATA[RockNrollOutlaw]]></dc:creator><pubDate>Sat, 24 Sep 2011 13:50:57 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 14:28:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">// Geht, ist aber nicht sehr elegant
    unsigned ctr(0);
    for(list&lt;Border&gt;::iterator it=lPolygon.begin();ctr&lt;lPolygon.size()-1;++it,++ctr)
    {
    }
</code></pre>
<p>Und das mit Abstand ineffizienteste, da list&lt;T&gt;::size linearen Aufwand bedeutet und du den Wert nicht cachest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123257</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 24 Sep 2011 14:28:56 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 22:37:50 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Und das mit Abstand ineffizienteste, da list&lt;T&gt;::size linearen Aufwand bedeutet und du den Wert nicht cachest.</p>
</blockquote>
<p>nein. a) Es ist bei aktuellen Implementationen unwahrscheinlich, dass size() O(n) ist. b) der Compiler kann das ganz gut optimieren und es besteht kein Grund, das cachen selbst zu übernehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123359</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sat, 24 Sep 2011 22:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sat, 24 Sep 2011 22:42:25 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<p>Und das mit Abstand ineffizienteste, da list&lt;T&gt;::size linearen Aufwand bedeutet und du den Wert nicht cachest.</p>
</blockquote>
<p>nein. a) Es ist bei aktuellen Implementationen unwahrscheinlich, dass size() O(n) ist. b) der Compiler kann das ganz gut optimieren und es besteht kein Grund, das cachen selbst zu übernehmen.</p>
</blockquote>
<p>Gibt genug Implementierungen, bei denen size() O(n) läuft, und das mit gutem Grund. Da nehme ich lieber die Variante mit dem end-Iterator.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123361</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 24 Sep 2011 22:42:25 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 00:38:16 GMT]]></title><description><![CDATA[<p>bts2 schrieb:</p>
<blockquote>
<p>Wie kann man einen Iterator auf eine Liste über den gesamten Bereich mit<br />
Ausnahme des letzten Elements laufen lassen?</p>
</blockquote>
<pre><code class="language-cpp">for (list&lt;Border&gt;::iterator itr = lPolygon.begin(), end = std::prev(lPolygon.end()); itr != end; ++itr)
</code></pre>
<p>Wobei hier auch <code>--lPolygon.end()</code> gehen sollte. Setzt natürlich voraus, dass mindestens ein Element drin ist und die <code>end()</code> -Kopie dekrementiert werden kann. Übrigens bricht das Forum die Zeilen automatisch um, du brauchst es also nicht selbst zu tun <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="🙂"
    /></p>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Gibt genug Implementierungen, bei denen size() O(n) läuft, und das mit gutem Grund.</p>
</blockquote>
<p>Ob <code>splice()</code> allein immer ein guter Grund ist... Und welche Implementierungen haben O(n)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123381</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 Sep 2011 00:38:16 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 01:16:11 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Ob <code>splice()</code> allein immer ein guter Grund ist... Und welche Implementierungen haben O(n)?</p>
</blockquote>
<p>splice reicht eigentlich schon als Grund, denn die Größe einer list braucht man nie. Da ist der zusätzliche int Verschwendung :p<br />
Die SGI Lib oder wie die heißt hat eine O(n) Implementierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123385</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 25 Sep 2011 01:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 06:54:05 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>splice reicht eigentlich schon als Grund</p>
</blockquote>
<p>Wer spliced dnen eine Liste? Also so in der Praxis. Wer benutzt <em>überhaupt</em> Listen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123394</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sun, 25 Sep 2011 06:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 10:14:30 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Wer spliced dnen eine Liste? Also so in der Praxis.</p>
</blockquote>
<p>Ist schon selten. Aber andererseits liegt Pi auch nicht ganz falsch, <code>size()</code> kommt auch nicht allzu häufig vor.</p>
<p>otze schrieb:</p>
<blockquote>
<p>Wer benutzt <em>überhaupt</em> Listen?</p>
</blockquote>
<p>Unter anderem Leute, denen schnelle Einfügungen/Löschungen in der Mitte oder dauernd gültige Iteratoren wichtig sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123425</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 Sep 2011 10:14:30 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 12:03:53 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<p>Und das mit Abstand ineffizienteste, da list&lt;T&gt;::size linearen Aufwand bedeutet und du den Wert nicht cachest.</p>
</blockquote>
<p>nein. a) Es ist bei aktuellen Implementationen unwahrscheinlich, dass size() O(n) ist. b) der Compiler kann das ganz gut optimieren und es besteht kein Grund, das cachen selbst zu übernehmen.</p>
</blockquote>
<p>Die Diskussion war vor kurzem, libstdc++ implementiert size jedenfalls mit linearen Aufwand, also hat man das Problem schon mal mit dem G++ und Clang. Ob MS/Intel das anders machen weiß ich nicht, aber in der Begründung bei der libstdc++ steht dass es besser ist den User selbst mitzählen zu lassen als splice so zu drosseln. Eine Begründung die imho Sinn macht.</p>
<blockquote>
<p>b) der Compiler kann das ganz gut optimieren und es besteht kein Grund, das cachen selbst zu übernehmen.</p>
</blockquote>
<p>Bezweifle dass der Compiler das wegoptimieren kann. Und das 'cachen' würde sich ja von der Tipparbeit auf ein:</p>
<pre><code class="language-cpp">for(std::size_t i = 0, count = list.size() - 1; i != count; ++i)
</code></pre>
<p>beschränken, würde sich nicht lohnen dafür eine Komplexität von O(n²) zu riskieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123451</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 25 Sep 2011 12:03:53 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 12:36:37 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Ob <code>splice()</code> allein immer ein guter Grund ist... Und welche Implementierungen haben O(n)?</p>
</blockquote>
<p>splice reicht eigentlich schon als Grund, denn die Größe einer list braucht man nie. Da ist der zusätzliche int Verschwendung :p</p>
</blockquote>
<p>Klar, du mit deiner jahrzehntelangen Erfahrung in der Software-Entwicklung kannst das natürlich super einschätzen.</p>
<p>Lern erstmal wie man Programme mit mehr als 10 Zeilen entwirft und fertigstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123463</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 25 Sep 2011 12:36:37 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 12:55:27 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f618.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_blowing_a_kiss"
      title=":*"
      alt="😘"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123472</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sun, 25 Sep 2011 12:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 15:47:13 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>beschränken, würde sich nicht lohnen dafür eine Komplexität von O(n²) zu riskieren.</p>
</blockquote>
<p>Mein Gegenargument ist: Code ist 95% Gewohnheit. Die Gewohnheit sollte man nur brechen, wenn es wirklich notwendig ist.</p>
<p>wenn ich an 1000 Stellen des Programms</p>
<pre><code class="language-cpp">for (std::size_t i = 0; i != c.size();++i){
</code></pre>
<p>stehen hab, dann macht mich eine Zeile:</p>
<pre><code class="language-cpp">for(std::size_t i = 0, count = list.size() - 1; i != count; ++i)
</code></pre>
<p>total nervös. Jedes mal, wenn ich sie lesen würde, würde ich wahrscheinlich etwas länger über dem Code verharren. Wenn 2 Dinge gleich sind, sollten sie gleich aussehen, ansonsten habe ich den Eidnruck, einem Fehler aufgesessen zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123515</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sun, 25 Sep 2011 15:47:13 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 16:02:30 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>wenn ich an 1000 Stellen des Programms</p>
<pre><code class="language-cpp">for (std::size_t i = 0; i != c.size();++i){
</code></pre>
<p>stehen hab</p>
</blockquote>
<p>...dann hast du eine schlechte Gewohnheit. Diese Iterationsweise ist nicht die übliche für Container, sondern ein Spezialfall, den man vielleicht ab und zu bei Random-Access-Containern braucht. Aber du iterierst sicher nicht so über <code>std::list</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123521</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 Sep 2011 16:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Sun, 25 Sep 2011 20:09:33 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>ein Spezialfall, den man vielleicht ab und zu bei Random-Access-Containern braucht.</p>
</blockquote>
<p>Benutzt du mal was anderes als dichte Container oder Bäume(über die du dann eher selten iterieren wirst)? Der Spezialfall ist doch recht häufig der Fall der einen in der Praxis begegnet. Und im Grunde ist das der Einzige anständige weg, wenn man über mehrere Container parallel iterieren will. Für den Rest gibt's foreach.</p>
<blockquote>
<p>Aber du iterierst sicher nicht so über <code>std::list</code> .</p>
</blockquote>
<p>Ne, das war auch kein Iterationsargument. Sondern ein Argument dagegen, dass size() für Listen sich fundamental anders verhalten soll als das size(), von vektoren welches visuell im Code gleich aussieht. würde es size_slow() heißen (doer irgendwie anders), dann wäre das alles kein Problem, aber so wird der Code halt schwerer verständlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123594</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Sun, 25 Sep 2011 20:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Mon, 26 Sep 2011 06:37:47 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Wer spliced dnen eine Liste? Also so in der Praxis. Wer benutzt <em>überhaupt</em> Listen?</p>
</blockquote>
<p>Ich <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="🙂"
    /></p>
<p>Anwendungsfall: LRU-Cache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123696</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 26 Sep 2011 06:37:47 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Mon, 26 Sep 2011 06:39:56 GMT]]></title><description><![CDATA[<p>Oder jemand, der Mergesort implementieren möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123697</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 26 Sep 2011 06:39:56 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Mon, 26 Sep 2011 09:22:36 GMT]]></title><description><![CDATA[<p>Jemand der Merge-Sort implementieren möchte ist mit Zeiger-Arrays besser bedient.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123747</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 26 Sep 2011 09:22:36 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Mon, 26 Sep 2011 09:34:59 GMT]]></title><description><![CDATA[<p>Bei einem Zeiger-Array kann ich gleich einen besseren Sortieralgortihmus, z.B. Quicksort verwenden.<br />
Mergesort würde ich nur dann implementieren, wenn ich nur Bidi-Access habe. Ob das erstellen von einem Zeiger-Array da performanter ist, wage ich zu bezweifeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123753</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 26 Sep 2011 09:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to list&amp;lt;x&amp;gt;::iterator bis knapp vors Ende laufen lassen. on Mon, 26 Sep 2011 09:47:43 GMT]]></title><description><![CDATA[<p>Quicksort ist nicht pauschal besser als Mergesort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2123761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2123761</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Mon, 26 Sep 2011 09:47:43 GMT</pubDate></item></channel></rss>