<?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[Dringend: --end() == letztes gültiges element]]></title><description><![CDATA[<p>Wenn ich bei einer Liste den Iterator von end() um 1 dekrementiere, habe ich dann einen gültigen Iterator auf das (letzte) Element der Liste?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153923/dringend-end-letztes-gültiges-element</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 18:15:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153923.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 Jul 2006 22:16:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dringend: --end() == letztes gültiges element on Fri, 21 Jul 2006 22:16:56 GMT]]></title><description><![CDATA[<p>Wenn ich bei einer Liste den Iterator von end() um 1 dekrementiere, habe ich dann einen gültigen Iterator auf das (letzte) Element der Liste?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102055</guid><dc:creator><![CDATA[Heinrich M.]]></dc:creator><pubDate>Fri, 21 Jul 2006 22:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to Dringend: --end() == letztes gültiges element on Fri, 21 Jul 2006 22:29:44 GMT]]></title><description><![CDATA[<p><a href="http://cppreference.com" rel="nofollow">cppreference.com</a> schrieb:</p>
<blockquote>
<p>&quot;Note that before you can access the last element of the list using an iterator that you get from a call to end(), you'll have to decrement the iterator first.&quot;</p>
</blockquote>
<p>Also sollte --end() funktionieren.</p>
<p>Sicher, dass du aber nicht lieber eins von denen hier benützen willst:<br />
rbegin()<br />
back()</p>
<p>?</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102060</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Fri, 21 Jul 2006 22:29:44 GMT</pubDate></item><item><title><![CDATA[Reply to Dringend: --end() == letztes gültiges element on Fri, 21 Jul 2006 22:39:48 GMT]]></title><description><![CDATA[<p>back() liefert mir ja eine Referenz ich will aber einen Iterator und rbegin liefert ja einen reverse_iterator, den ich erst umwandeln müsste zu einem iterator</p>
<p>Daher ist das halt der direkteste Weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102063</guid><dc:creator><![CDATA[Heinrich M.]]></dc:creator><pubDate>Fri, 21 Jul 2006 22:39:48 GMT</pubDate></item><item><title><![CDATA[Reply to Dringend: --end() == letztes gültiges element on Sat, 22 Jul 2006 00:18:28 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Also sollte --end() funktionieren.</p>
</blockquote>
<p>leider nicht. end() ist ein rvalue. zwar wird ein listiterator niemals ein einfacher pointer sein. aber operator-- muss nicht so überladen sein, dass dieser auf rvalues aufrufbar ist. das wäre der fall, wenn operator-- als freie funktion implementiert ist. ein variable, die end() direkt entgegennimmt, ist also notwendig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102075</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 22 Jul 2006 00:18:28 GMT</pubDate></item><item><title><![CDATA[Reply to Dringend: --end() == letztes gültiges element on Sat, 22 Jul 2006 11:44:15 GMT]]></title><description><![CDATA[<p>Du meinst also:</p>
<pre><code class="language-cpp">iterator it = myList.end();
--it;
</code></pre>
<p>So verwende ich das auch, aber es war mir nicht bewusst, dass --end() nicht unbedingt fuktionieren muss. Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102186</guid><dc:creator><![CDATA[Heinrich M.]]></dc:creator><pubDate>Sat, 22 Jul 2006 11:44:15 GMT</pubDate></item><item><title><![CDATA[Reply to Dringend: --end() == letztes gültiges element on Sat, 22 Jul 2006 11:48:17 GMT]]></title><description><![CDATA[<p>Afaik ist die gängige Praxis folgende:</p>
<pre><code class="language-cpp">if(!container.empty() &amp;&amp; iter == container.end()-1){...
</code></pre>
<p>Wie camper schon saget das mit dem --end() &quot;kann&quot; gut gehen muss aber nicht. Und deshalb ist es besser container.end()-1 zu wählen.</p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1102188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102188</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sat, 22 Jul 2006 11:48:17 GMT</pubDate></item><item><title><![CDATA[Reply to Dringend: --end() == letztes gültiges element on Sat, 22 Jul 2006 12:08:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">container.end()-1
</code></pre>
<p>funktioniert allerdings nur mit random-access-iteratoren. allerdings gibt es ja auch noch boost::next und boost::prior für diesen zweck. also</p>
<pre><code class="language-cpp">if(!container.empty() &amp;&amp; iter == boost::prior(container.end()))
</code></pre>
<p>nat. könnte man in diesem falle tatsächlich genausogut mit back() arbeiten:</p>
<pre><code class="language-cpp">if(!container.empty() &amp;&amp; &amp;*iter == &amp;container.back())
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1102197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1102197</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 22 Jul 2006 12:08:56 GMT</pubDate></item></channel></rss>