<?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[std::vector und destruktor]]></title><description><![CDATA[<p>wenn ich einen std::vector einer selbst erstellten klasse erstelle,<br />
und ein element mit .clear(i) lösche</p>
<p>muss ich dann einen destruktor definieren?<br />
so etwas in der art delete?</p>
<p>schließlich habe ich ja kein new aufgerufen?</p>
<p>bin anfänger also bitte einfach antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224161/std-vector-und-destruktor</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 20:01:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224161.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Oct 2008 14:16:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::vector und destruktor on Mon, 06 Oct 2008 14:16:43 GMT]]></title><description><![CDATA[<p>wenn ich einen std::vector einer selbst erstellten klasse erstelle,<br />
und ein element mit .clear(i) lösche</p>
<p>muss ich dann einen destruktor definieren?<br />
so etwas in der art delete?</p>
<p>schließlich habe ich ja kein new aufgerufen?</p>
<p>bin anfänger also bitte einfach antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594242</guid><dc:creator><![CDATA[ravenheart]]></dc:creator><pubDate>Mon, 06 Oct 2008 14:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector und destruktor on Mon, 06 Oct 2008 14:24:59 GMT]]></title><description><![CDATA[<p>std::vector arbeitet mit dem Default-Konstruktor, dem Copy-Konstruktor, dem Destruktor und dem operator= der verwendeten Klasse.<br />
die drei werden (wenn du sie nicht selbst deklarierst) vom Compiler generiert (sollte im C++-Buch deiner Wahl zur Genüge erläutert worden sein).</p>
<p>Das bedeutet für dich: für die Verwendung von std::vector musst du nicht extra den Dtor definieren. ABER: Wenn du einen der Konstruktoren und/oder den op= selbst definiert hast (z.B. wenn deine Klasse eigenen dynamischen Speicher verwaltet), musst du höchstwahrscheinlich auch den Destruktor definieren, das gilt aber unabhängig davon ob du die Klasse im Zusammenhang mit std::vector benutzt oder nicht (nennt sich law of the big three).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594250</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 06 Oct 2008 14:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector und destruktor on Mon, 06 Oct 2008 14:52:30 GMT]]></title><description><![CDATA[<p>hmm leider werden die containerklassen in meinen büchern nicht weiter erwähnt;</p>
<p>also um nochmal eine klare antwort zu erhalten;</p>
<p>wenn ich ein objekt aus dem vector lpösche , wird dessen konstruktor aufgerufen,<br />
soweit so gut</p>
<p>wenn in meiner klasse also keine zeiger vorkommen, entsteht auch kein memory-leak?</p>
<p>achja worauf ich noch keine antwort googlen konnte, wenn ich ein element lösche, werden dann die nachfolgenden objekte &quot;verschoben&quot;?</p>
<p>oder is da eine &quot;leere&quot; stelle?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594278</guid><dc:creator><![CDATA[ravenheart]]></dc:creator><pubDate>Mon, 06 Oct 2008 14:52:30 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector und destruktor on Mon, 06 Oct 2008 15:06:52 GMT]]></title><description><![CDATA[<p>bei einem erase werden alle nachfolgenden Segmente nach vorne geschoben. Will man das nicht, sollte man list verwenden</p>
<p>siehe dazu auch <a href="http://cplusplus.com" rel="nofollow">cplusplus.com</a>:</p>
<p>&lt;a href= schrieb:</p>
<blockquote>
<p><a href="http://www.cplusplus.com/reference/stl/vector/erase.html" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/erase.html</a>&quot;&gt;Because vectors keep an array format, erasing on positions other than the vector end also moves all the elements after the segment erased to their new positions, which may not be a method as efficient as erasing in other kinds of sequence containers (deque, list).</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1594290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594290</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Mon, 06 Oct 2008 15:06:52 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector und destruktor on Mon, 06 Oct 2008 15:44:06 GMT]]></title><description><![CDATA[<p>gibt es einen trick wie man einfach rausbekommen kann, ob speicher zu spät freigegeben wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594313</guid><dc:creator><![CDATA[ravenheart]]></dc:creator><pubDate>Mon, 06 Oct 2008 15:44:06 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector und destruktor on Mon, 06 Oct 2008 20:00:54 GMT]]></title><description><![CDATA[<p>entweder er wird rechtzeitig freigegeben oder garnicht... zu spät gibts da nicht.<br />
Es gibt aber tools die helfen können herauszufinden ob angeforderter Speicher auch wieder freigegeben wird. Am Besten ist es allerdings, gleich zu jeder Speicheranforderung auch an den entsprechenden Stellen die Freigabe einzubauen. Am leichtesten und sichersten ist das meist mit Smartpointern zu bewerkstelligen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594468</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 06 Oct 2008 20:00:54 GMT</pubDate></item></channel></rss>