<?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[[gelöst] Elemente aus vector&amp;lt;class*&amp;gt; löschen]]></title><description><![CDATA[<p>Hi,</p>
<p>beim folgenden Problem hab ich wohl nur einfach ein Brett vorm Kopp.</p>
<p>Ich habe einen vector aus zeigern auf mehrere Instanzen einer anderen Klasse (class listElement), also vector&lt;ListElement*&gt; myListElements.<br />
Diesen vector möchte ich nun leeren und alle darin enthaltenen Elemente löschen.</p>
<p>Mein Code</p>
<pre><code>ListElement* TempListElement;

while(myListElements.empty() == false){
        TempListElement = myListElements.front();
        myListElements.erase(myListElements.begin());
        delete TempListElement;    //Fehler
                                   //(Auch bei &amp;TempListElement)
    }
</code></pre>
<p>wirft immer einen Segmentation fault oder ähnlichs.<br />
Da ich im debug modus über TempListElement immernoch auf das ListElement zugreifen kann, wird das bei erase offenbar nicht gelöscht, oder irre ich mich da?<br />
Dass das ListElement auch Zeiger auf andere Klasseninstanzen besitzt müsste doch eigentlich egal sein, oder?</p>
<p>Ich hoffe ihr könnt mein Brett entfernen. Wer es kann, darf es behalten, ist schöne dicke Eiche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Viele Grüße<br />
Cherup</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333504/gelöst-elemente-aus-vector-lt-class-gt-löschen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 21:17:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333504.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Jul 2015 15:29:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] Elemente aus vector&amp;lt;class*&amp;gt; löschen on Sun, 12 Jul 2015 16:26:30 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>beim folgenden Problem hab ich wohl nur einfach ein Brett vorm Kopp.</p>
<p>Ich habe einen vector aus zeigern auf mehrere Instanzen einer anderen Klasse (class listElement), also vector&lt;ListElement*&gt; myListElements.<br />
Diesen vector möchte ich nun leeren und alle darin enthaltenen Elemente löschen.</p>
<p>Mein Code</p>
<pre><code>ListElement* TempListElement;

while(myListElements.empty() == false){
        TempListElement = myListElements.front();
        myListElements.erase(myListElements.begin());
        delete TempListElement;    //Fehler
                                   //(Auch bei &amp;TempListElement)
    }
</code></pre>
<p>wirft immer einen Segmentation fault oder ähnlichs.<br />
Da ich im debug modus über TempListElement immernoch auf das ListElement zugreifen kann, wird das bei erase offenbar nicht gelöscht, oder irre ich mich da?<br />
Dass das ListElement auch Zeiger auf andere Klasseninstanzen besitzt müsste doch eigentlich egal sein, oder?</p>
<p>Ich hoffe ihr könnt mein Brett entfernen. Wer es kann, darf es behalten, ist schöne dicke Eiche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Viele Grüße<br />
Cherup</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2459474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2459474</guid><dc:creator><![CDATA[Cherup]]></dc:creator><pubDate>Sun, 12 Jul 2015 16:26:30 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Elemente aus vector&amp;lt;class*&amp;gt; löschen on Sun, 12 Jul 2015 15:38:47 GMT]]></title><description><![CDATA[<p>1. das stück ist korrekt<br />
2. solltest du bei einem vector &quot;von hinten&quot; löschen, weil du sonst alle elemente ständig umkopierst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2459476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2459476</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 12 Jul 2015 15:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Elemente aus vector&amp;lt;class*&amp;gt; löschen on Sun, 12 Jul 2015 15:54:01 GMT]]></title><description><![CDATA[<p>zu 2.:<br />
Habs grad ausprobiert, da bekomm ich bei</p>
<pre><code>myListElements.erase(myListElements.end())
</code></pre>
<p>einen segmentation fault <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Irgendwie läuft da was gewaltig verkehrt in meinem System <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2459479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2459479</guid><dc:creator><![CDATA[Cherup]]></dc:creator><pubDate>Sun, 12 Jul 2015 15:54:01 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Elemente aus vector&amp;lt;class*&amp;gt; löschen on Sun, 12 Jul 2015 16:00:12 GMT]]></title><description><![CDATA[<p><code>.end()</code> zeigt hinter das Ende der Sequenz, d.h. <code>.end()</code> zeigt nicht auf ein Element, d.h. du kannst auch kein Element an Position <code>.end()</code> löschen. Stichwort halboffenes Intervall, also <code>[begin, end)</code> .<br />
Was du löschen kannst ist <code>.end() - 1</code> . Vorausgesetzt <code>.end() != .begin()</code> natürlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2459480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2459480</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 12 Jul 2015 16:00:12 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Elemente aus vector&amp;lt;class*&amp;gt; löschen on Sun, 12 Jul 2015 16:25:58 GMT]]></title><description><![CDATA[<p>Ich hab meinen Fehler gefunden.</p>
<p>Das Problem war, dass die zu löschende Klasse ein Qt-Widget ist und ich in einem dekontruktor eines anderen Widgets was vergessen hatte bzw nicht wußte.</p>
<p>Nunja, Qt Widgets unterscheiden sich in manchen dingen eben doch von den &quot;normalen&quot; c++-Klassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2459492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2459492</guid><dc:creator><![CDATA[Cherup]]></dc:creator><pubDate>Sun, 12 Jul 2015 16:25:58 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Elemente aus vector&amp;lt;class*&amp;gt; löschen on Sun, 12 Jul 2015 16:33:35 GMT]]></title><description><![CDATA[<p>while(myListElements.empty() == false){</p>
<p>Ich mag diesen Stil nicht. Machen viel so, aber ich mags nicht und ich wollts mal ansprechen. empty oder !empty find ich viel klarer und verständlicher, als einen Vergleich mit irgendeinem Wert &quot;false&quot;, der nur am Rande mit dem ganzen zu tun hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2459493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2459493</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Sun, 12 Jul 2015 16:33:35 GMT</pubDate></item></channel></rss>