<?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[Zeiger aus Map löschen]]></title><description><![CDATA[<p>Abend!</p>
<p>Ich habe eine map&lt;string, Context*&gt; und will nur einen bestimmten Eintrag löschen:</p>
<pre><code class="language-cpp">map&lt;std::string, Context*&gt;::const_iterator it = mContexts.find(contextName);
if(it != mInputContexts.end()) {
    delete it-&gt;second;
    mContexts.erase(it);	
}
</code></pre>
<p>In dem Code lösche ich zuerst das Objekt und danach den Eintrag aus der Map. Frage: Ist das sicher? Denn wenn ich map::erase() aufrufe, ist das Ding ja bereits zerstört. Oder lieber anders machen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/289621/zeiger-aus-map-löschen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 02:08:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/289621.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Jul 2011 15:39:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeiger aus Map löschen on Sat, 09 Jul 2011 15:39:44 GMT]]></title><description><![CDATA[<p>Abend!</p>
<p>Ich habe eine map&lt;string, Context*&gt; und will nur einen bestimmten Eintrag löschen:</p>
<pre><code class="language-cpp">map&lt;std::string, Context*&gt;::const_iterator it = mContexts.find(contextName);
if(it != mInputContexts.end()) {
    delete it-&gt;second;
    mContexts.erase(it);	
}
</code></pre>
<p>In dem Code lösche ich zuerst das Objekt und danach den Eintrag aus der Map. Frage: Ist das sicher? Denn wenn ich map::erase() aufrufe, ist das Ding ja bereits zerstört. Oder lieber anders machen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2090675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090675</guid><dc:creator><![CDATA[Marlooo]]></dc:creator><pubDate>Sat, 09 Jul 2011 15:39:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger aus Map löschen on Sat, 09 Jul 2011 15:53:51 GMT]]></title><description><![CDATA[<p>Hey Marlooo,</p>
<p>Mit 'delete'/'delete[]' löscht du nichts, du gibst bloß Speicher frei.<br />
Außerdem gibst du ja nicht den iterator frei sondern iterator-&gt;second.<br />
Dein Iterator ist noch weiterhin in der Map referenziert.</p>
<p>ERGO: Sicherer Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2090681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090681</guid><dc:creator><![CDATA[AmITrolling?]]></dc:creator><pubDate>Sat, 09 Jul 2011 15:53:51 GMT</pubDate></item><item><title><![CDATA[Reply to Zeiger aus Map löschen on Sat, 09 Jul 2011 16:01:28 GMT]]></title><description><![CDATA[<p>Du könntest dir auch überlegen dafür boost zu benutzen. Pointer Container machen genau so Sachen für dich:<br />
<a href="http://www.boost.org/doc/libs/1_46_1/libs/ptr_container/doc/ptr_container.html" rel="nofollow">http://www.boost.org/doc/libs/1_46_1/libs/ptr_container/doc/ptr_container.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2090683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2090683</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 09 Jul 2011 16:01:28 GMT</pubDate></item></channel></rss>