<?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[Ist der end Iterator konstant?]]></title><description><![CDATA[<p>Mahlzeit</p>
<p>eine Frage zu Map Iteratoren. Wenn ich mir einen Iterator auf das Ende hinter der Map merke:</p>
<pre><code class="language-cpp">Iterator itEnd = myMap.end();
// Map editieren (einfuegen, loeschen etc.)
// ...
Iterator itEnd2 = myMap.end();
// Ist hier sichergestellt, dass itEnd2 == itEnd ?
</code></pre>
<p>Und dann bearbeite ich die Map (insert etc.) und hole mir dann erneut einen Iterator per end(). Ist dann garantiert, dass die 2 End Zeiger die gleichen sind? Oder liefert das end() dann einen neuen Iterator?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286400/ist-der-end-iterator-konstant</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 01:42:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286400.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 May 2011 10:14:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 10:14:13 GMT]]></title><description><![CDATA[<p>Mahlzeit</p>
<p>eine Frage zu Map Iteratoren. Wenn ich mir einen Iterator auf das Ende hinter der Map merke:</p>
<pre><code class="language-cpp">Iterator itEnd = myMap.end();
// Map editieren (einfuegen, loeschen etc.)
// ...
Iterator itEnd2 = myMap.end();
// Ist hier sichergestellt, dass itEnd2 == itEnd ?
</code></pre>
<p>Und dann bearbeite ich die Map (insert etc.) und hole mir dann erneut einen Iterator per end(). Ist dann garantiert, dass die 2 End Zeiger die gleichen sind? Oder liefert das end() dann einen neuen Iterator?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060766</guid><dc:creator><![CDATA[siffi2]]></dc:creator><pubDate>Mon, 09 May 2011 10:14:13 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 10:38:33 GMT]]></title><description><![CDATA[<p>Ich finde es gerade nicht, aber du kannst davon ausgehen, dass das funktioniert. Wenn im Standard nicht ausdrücklich steht, dass Iteratoren durch eine Aktion ungültig werden, dann werden sie das auch nicht.</p>
<p>Intern ist der end()-Iterator übrigens (zumindest bei den mir bekannten Implementierungen) ein Zeiger auf die internen Datenstrukturen der map selbst. Und deren Adressen ändern sich nicht, wenn man etwas einfügt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060773</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 May 2011 10:38:33 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 10:43:22 GMT]]></title><description><![CDATA[<p>Also bei einer map und auch list, werden beim löschen nur Iteratoren auf die zu löschenden Elemente ungültig, der Rest nicht. Beim Einfügen bleiben sie so weit ich weiß auch gültig.</p>
<p>Bei einem Vektor, sieht das ganz anders aus, dort können je nachdem bei einem Einfügen oder Löschen alle Iteratoren ungültig werden.</p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060775</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Mon, 09 May 2011 10:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 12:05:08 GMT]]></title><description><![CDATA[<p>Wo findet man denn eine kompakte Auflistung, welche Iteratoren bei welchen<br />
Aktionen ungültig werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060815</guid><dc:creator><![CDATA[Auflistung]]></dc:creator><pubDate>Mon, 09 May 2011 12:05:08 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 12:38:22 GMT]]></title><description><![CDATA[<p>Auflistung schrieb:</p>
<blockquote>
<p>Wo findet man denn eine kompakte Auflistung, welche Iteratoren bei welchen<br />
Aktionen ungültig werden?</p>
</blockquote>
<p>Definiere Kompakt. Es sind bloß vier Sätze im Standard:<br />
<strong>23.2.1.3: deque modifiers</strong> (-&gt; insert und erase machen alle iteratoren ungültig.)<br />
<strong>23.2.2.3: list modifiers</strong> (-&gt; insert invalidiert nichts, erase nur Iteratoren auf das gelöshte Element)<br />
<strong>23.2.4.2: vector modifiers</strong> (insert invalidiert genau dann alle Iteratoren, wenn die neue Größe die alta kapazität übersteigt, weil der Speicher neu alloziiert werden muss. Erase invalidiert alle Iteratoren hinter dem gelöschen Element.)<br />
<strong>23.1.2 Associative Containers</strong> (d.h. [multi]map, [multi|bit]set) (insert invalidiert nichts, erase nur Iteratoren auf das gelöschte Element)</p>
<p>Das wars.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060833</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 09 May 2011 12:38:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 13:11:18 GMT]]></title><description><![CDATA[<p>Zusatz bei vector: insert invalidiert, wenn die Kapazität ausreicht, alle Iteratoren hinter dem eingefügten Element.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060849</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Mon, 09 May 2011 13:11:18 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 13:51:48 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p><strong>23.2.4.2: vector modifiers</strong> (insert invalidiert genau dann alle Iteratoren, wenn die neue Größe die alta kapazität übersteigt, weil der Speicher neu alloziiert werden muss. Erase invalidiert alle Iteratoren hinter dem gelöschen Element.)</p>
</blockquote>
<p>Gilt das auch fuer Zeiger?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">vector&lt;Foo&gt; v;
v.push_back(...);
v.push_back(...);
v.push_back(...);
...
Foo* f = &amp;v[2];
// A
v.push_back(...);
v.push_back(...);
v.push_back(...);

Zeigt jetzt f auf jeden Fall noch auf das selbe Element wie an der Stelle A?
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2060876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060876</guid><dc:creator><![CDATA[siffi2]]></dc:creator><pubDate>Mon, 09 May 2011 13:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 14:00:22 GMT]]></title><description><![CDATA[<p>Ja, das gilt auch für Zeiger auf die Elemente. Es kann also sein, dass f nicht mehr auf einen gültigen Speicherbereich zeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060878</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 09 May 2011 14:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to Ist der end Iterator konstant? on Mon, 09 May 2011 16:03:26 GMT]]></title><description><![CDATA[<p>Auflistung schrieb:</p>
<blockquote>
<p>Wo findet man denn eine kompakte Auflistung, welche Iteratoren bei welchen<br />
Aktionen ungültig werden?</p>
</blockquote>
<p>Sowas? <a href="http://magazin.c-plusplus.net/artikel/Aufbau%20der%20STL%20-%20Teil%201%3A%20Container" rel="nofollow">http://magazin.c-plusplus.net/artikel/Aufbau%20der%20STL%20-%20Teil%201%3A%20Container</a> (ganz unten)</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060928</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 09 May 2011 16:03:26 GMT</pubDate></item></channel></rss>