<?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 erase Nachfrage]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich glaube, dass ich auf genau dieses Problem gestoßen bin:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-211725-and-highlight-is-vector+erase.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-211725-and-highlight-is-vector+erase.html</a></p>
<p>Verstehe ich das richtig? Das erase sorgt tatsächlich für defekte (per Pointer) referenzierte Elemente, wenn man bsw. das erste Element löschen will?<br />
Dann ist der Vector also nur für native oder 'flache' Sammlungen zu gebrauchen?</p>
<p>Wodurch würdet Ihr in dem Fall den std::vector ersetzen?</p>
<p>...oder habe ich etwas falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218911/std-vector-erase-nachfrage</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 15:10:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218911.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Jul 2008 09:01:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 09:01:33 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich glaube, dass ich auf genau dieses Problem gestoßen bin:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-211725-and-highlight-is-vector+erase.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-211725-and-highlight-is-vector+erase.html</a></p>
<p>Verstehe ich das richtig? Das erase sorgt tatsächlich für defekte (per Pointer) referenzierte Elemente, wenn man bsw. das erste Element löschen will?<br />
Dann ist der Vector also nur für native oder 'flache' Sammlungen zu gebrauchen?</p>
<p>Wodurch würdet Ihr in dem Fall den std::vector ersetzen?</p>
<p>...oder habe ich etwas falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554407</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 27 Jul 2008 09:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 09:19:42 GMT]]></title><description><![CDATA[<p>SammyRukka schrieb:</p>
<blockquote>
<p>Verstehe ich das richtig? Das erase sorgt tatsächlich für defekte (per Pointer) referenzierte Elemente, wenn man bsw. das erste Element löschen will?<br />
Dann ist der Vector also nur für native oder 'flache' Sammlungen zu gebrauchen?</p>
</blockquote>
<p>Nein. class Enemy wie gezeigt ist schlicht nicht Containerkompatibel. Der Zuweisungsoperator erzeugt flache Kopien (was zu doppeltem delete führt) und der Copyctor erstellt nicht immer äquivalente Kopien.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554408</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 27 Jul 2008 09:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 19:32:26 GMT]]></title><description><![CDATA[<p>Hmmm, dann komme ich aber immer noch nicht mir.</p>
<p>Meine Mit-Pointer-Klasse hat einen Copy-Konstruktor und legt darin auch eine neue 'verpointerte' Instanz der Pointer-Inhalt-Klasse an. Die hat ebenfalls einen Copy-Konstruktor (den ich ja auch benutze).</p>
<p>Warum dann bei mir das doppelte delete? Zumal das 2. delete ja auch auf den Pointer des zweiten Elements des Vectors geht und nicht noch einmal auf den gelöschten Bereich.<br />
Und hast Du das nicht in Deinem letzen Beitrag (siehe Link) auch so beschrieben?</p>
<p>Sry, falls ich das Missverstehe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554754</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 27 Jul 2008 19:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 19:40:47 GMT]]></title><description><![CDATA[<p>zeig den code her. irgendwo erzeugst du flache kopien.<br />
ich tippe auf den operator=</p>
<p>aber ohne code, kann man nur raten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554760</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 27 Jul 2008 19:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 20:05:53 GMT]]></title><description><![CDATA[<p>Ach ich Idiot! Wußte nicht, dass Magen-Darm auch auf den Kopf schlägt....</p>
<p>Der Zuweisungsoperator ist '=' <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> Den habe ich natürlich nicht definiert.<br />
Also braucht die 'Mit-Pointer-Klasse' eine eigene Implementierung von =, damit das umsortieren, das erase macht, funktioniert?<br />
Ich steige dann aber nicht dahinter, wann erase den =-Aufruf macht (wenn dem so ist), der Satz von queer_boy</p>
<blockquote>
<p>du müsstest es aus dem array herausnehmen, und letztendlich alle anderen elemente, die nach dem element, auf das der iterator zeigt, kommen, eines nach hinten kopieren.</p>
</blockquote>
<p>kommt mir da komisch vor. Muss erase die Elemente nicht nach vorn kopieren (an die Stelle des gelöschten) oder war das gemeint?</p>
<p>An den Code komme ich im Moment nicht dran, kann also auch nicht probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554781</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 27 Jul 2008 20:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 20:12:15 GMT]]></title><description><![CDATA[<p>erase ruft den operator= auf beim loeschen eines objektes. dann muessen alle objekte die nach diesem geloeschten objekt platziert waren ja eins nach vorne wandern... und da wird dann eine flache kopie erstellt und das fuehrt zu dem zweimaligen delete.</p>
<p>was ctor, copyctor und op= betrifft: die fallen unter <a href="http://tutorial.schornboeck.net/bigthree.htm" rel="nofollow">The Law Of The Big Three</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554785</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 27 Jul 2008 20:12:15 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 20:38:36 GMT]]></title><description><![CDATA[<p>Jajaja, wäre in Java gar nicht notwendig gewesen, da funzt der Vector auch so... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
OK. Hab's verstanden und 'the big three' war mir <em>eigentlich</em> auch klar.<br />
Werde das morgen mal korrigieren.</p>
<p>Danke Euch!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554798</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 27 Jul 2008 20:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector erase Nachfrage on Sun, 27 Jul 2008 21:10:54 GMT]]></title><description><![CDATA[<p>SammyRukka schrieb:</p>
<blockquote>
<p>Jajaja, wäre in Java gar nicht notwendig gewesen, da funzt der Vector auch so... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>kein problem in c++. mach einen vector&lt;shared_ptr&lt;Enemey&gt; &gt; und du hast die selbe semantik...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1554816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1554816</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Sun, 27 Jul 2008 21:10:54 GMT</pubDate></item></channel></rss>