<?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[Iterator wert bei Fehler]]></title><description><![CDATA[<p>Wenn ich sowas mache:</p>
<pre><code>auto itr = mTextureMap.insert(std::make_pair(id, std::move(texture)));
</code></pre>
<p>Welchen wert hat der Iterator, falls aus irgendeinem Grund das Objekt nicht die die map eingesetzt werden konnte?<br />
(mTextureMap.end() ?)</p>
<p>Und gibt mTextureMap.erase auch einen Iterator Wert zurück ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320305/iterator-wert-bei-fehler</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 04:50:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320305.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Sep 2013 18:45:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 18:47:59 GMT]]></title><description><![CDATA[<p>Wenn ich sowas mache:</p>
<pre><code>auto itr = mTextureMap.insert(std::make_pair(id, std::move(texture)));
</code></pre>
<p>Welchen wert hat der Iterator, falls aus irgendeinem Grund das Objekt nicht die die map eingesetzt werden konnte?<br />
(mTextureMap.end() ?)</p>
<p>Und gibt mTextureMap.erase auch einen Iterator Wert zurück ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355000</guid><dc:creator><![CDATA[DuffCola]]></dc:creator><pubDate>Mon, 23 Sep 2013 18:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 18:47:04 GMT]]></title><description><![CDATA[<p>Zum Programmieren gehört, eine Referenz benutzen zu können<br />
z.B. die: <a href="http://en.cppreference.com/w/cpp/container/map/insert" rel="nofollow">http://en.cppreference.com/w/cpp/container/map/insert</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355003</guid><dc:creator><![CDATA[cppreference]]></dc:creator><pubDate>Mon, 23 Sep 2013 18:47:04 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 18:49:28 GMT]]></title><description><![CDATA[<p>Was bedeutet denn</p>
<blockquote>
<p>value_type</p>
</blockquote>
<p>in der Reference?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355006</guid><dc:creator><![CDATA[DuffCola]]></dc:creator><pubDate>Mon, 23 Sep 2013 18:49:28 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 18:51:34 GMT]]></title><description><![CDATA[<p>Da geht man zurück zur Klasse map und schaut unter Member Types nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355008</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 23 Sep 2013 18:51:34 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 19:00:00 GMT]]></title><description><![CDATA[<p>Ah ok danke hätte ich auch selbst drauf kommen können...</p>
<p>Trotzdem habe ich oft Probleme Referenzen von komplexen Klassen zu verstehen.<br />
Z.B. auf <a href="http://en.cppreference.com/w/cpp/container/map/erase" rel="nofollow">http://en.cppreference.com/w/cpp/container/map/erase</a>.<br />
Ich will wissen, wenn ich follgendes mache:</p>
<pre><code>mTextureMap.erase(itr);
</code></pre>
<p>Welchen Wert ich bei einem Fehler bekomme.<br />
Aber in der Referenz steht nur</p>
<blockquote>
<p>Return value<br />
1-2) Iterator following the last removed element.</p>
</blockquote>
<p>Was für einen Wert hat der Rückgabe Wert jetzt bei einem Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355012</guid><dc:creator><![CDATA[DuffCola]]></dc:creator><pubDate>Mon, 23 Sep 2013 19:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 19:05:10 GMT]]></title><description><![CDATA[<p>DuffCola schrieb:</p>
<blockquote>
<p>Was für einen Wert hat der Rückgabe Wert jetzt bei einem Fehler?</p>
</blockquote>
<p>Es gibt keinen Fehler. Der übergebene Iterator wird immer gelöscht. (Der Fall, dass ein Key angegeben wird, wird in (3) behandelt)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355015</guid><dc:creator><![CDATA[cppreference]]></dc:creator><pubDate>Mon, 23 Sep 2013 19:05:10 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 19:09:43 GMT]]></title><description><![CDATA[<p>DuffCola schrieb:</p>
<blockquote>
<p>Was für einen Wert hat der Rückgabe Wert jetzt bei einem Fehler?</p>
</blockquote>
<p>Welcher Fehler?<br />
Entweder du übergibst einen gültigen Iterator, dann geht nichts schief.<br />
Oder du übergibst einen ungültigen Iterator (begin() bei leerem Container, end(), falscher Iterator, etc.), dann ist das undefined behaviour (weil die Funktion einen validen Iterator verlangt) und es ist dem Compilerhersteller überlassen, was er da tun soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355017</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 23 Sep 2013 19:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Iterator wert bei Fehler on Mon, 23 Sep 2013 19:40:14 GMT]]></title><description><![CDATA[<p>Zurück zur Frage im OP:</p>
<pre><code>auto itr = mTextureMap.insert(std::make_pair(id, std::move(texture)));
</code></pre>
<p>Was du bekommst, ist ein <code>std::pair&lt;iterator, bool&gt;</code> . Der Iterator hat aber nicht den Wert von <code>end()</code> , wenn nichts eingefügt wurde - sondern er zeigt auf das Element mit dem bereits vorhandenen Key.</p>
<p>Um also zu prüfen, ob der Einfügevorgang erfolgreich war, schreibst du</p>
<pre><code>auto pair = mTextureMap.insert({id, std::move(texture)}); // ungetestet
if( pair.second )
   ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2355033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355033</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 23 Sep 2013 19:40:14 GMT</pubDate></item></channel></rss>