<?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[Einzelne Elemente aus Vector löschen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Vector mit Zahlen. aus diesem möchte ich nun alle geraden zahlen löschen. Folgenden Algorithmus habe ich dafür.</p>
<pre><code class="language-cpp">...

vector&lt;int&gt; vec;

for(int i = 1; i&lt; 20; i++)
	vec.push_back(i);

vector&lt;int&gt;::iterator it;
for ( it = vec.begin() ; it!=vec.end() ; )
{
	if ( (*it)%2 == 0 )
        {      
                vector&lt;int&gt;::iterator pos = remove(vec.begin(), vec.end(), *it);
		vec.erase(pos,vec.end());
        }
}

...
</code></pre>
<p>Wieso aber stürzt er mir ab?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/221853/einzelne-elemente-aus-vector-löschen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 17:49:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/221853.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Sep 2008 11:18:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einzelne Elemente aus Vector löschen on Thu, 04 Sep 2008 11:18:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Vector mit Zahlen. aus diesem möchte ich nun alle geraden zahlen löschen. Folgenden Algorithmus habe ich dafür.</p>
<pre><code class="language-cpp">...

vector&lt;int&gt; vec;

for(int i = 1; i&lt; 20; i++)
	vec.push_back(i);

vector&lt;int&gt;::iterator it;
for ( it = vec.begin() ; it!=vec.end() ; )
{
	if ( (*it)%2 == 0 )
        {      
                vector&lt;int&gt;::iterator pos = remove(vec.begin(), vec.end(), *it);
		vec.erase(pos,vec.end());
        }
}

...
</code></pre>
<p>Wieso aber stürzt er mir ab?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1576383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1576383</guid><dc:creator><![CDATA[Mister Wing]]></dc:creator><pubDate>Thu, 04 Sep 2008 11:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente aus Vector löschen on Thu, 04 Sep 2008 11:21:00 GMT]]></title><description><![CDATA[<p>WTF machst du da?</p>
<p>Formatier es mal richtig und schreib als Kommentar hinter oder vor jede Zeile was du meinst was sie tut.</p>
<p>Wenn du die Befehle verstehst, solltest du deinen Fehler schon selbst erkennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1576387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1576387</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Thu, 04 Sep 2008 11:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente aus Vector löschen on Thu, 04 Sep 2008 11:43:12 GMT]]></title><description><![CDATA[<p>Um die &quot;Befehle&quot; (die eigentlich Funktionen sind) zu verstehen, kannst du <a href="http://www.cplusplus.com/" rel="nofollow">hier</a> nachschauen. Diese Referenz ist sowieso zu empfehlen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1576411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1576411</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 04 Sep 2008 11:43:12 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente aus Vector löschen on Thu, 04 Sep 2008 11:45:22 GMT]]></title><description><![CDATA[<p>Das remove ist völlig überflüssig.<br />
Mach einfach erase auf den aktuellen iterator und speichere den Rückgabewert als neue Position. Wenn Bedingung fehlschlägt, erhöst du den Iterator ganz einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1576415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1576415</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 04 Sep 2008 11:45:22 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente aus Vector löschen on Thu, 04 Sep 2008 12:35:12 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>WTF machst du da?...</p>
</blockquote>
<p><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="🙄"
    /> <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 />
Naja, also sooooo schwer zu verstehen ist der Code nun auch nicht.<br />
... und dass bestimmte Iteratoren bestimmter Container nach Schreibzugriffen ungültig werden, ist auch nicht jedem klar.</p>
<p>Allerdings braucht man nicht immer wieder das Rad neu erfinden:</p>
<pre><code class="language-cpp">struct even {   bool operator(int i) { return !(i%2); } };

vector&lt;int&gt; vec;
for(int i = 1; i&lt; 20; i++) vec.push_back(i);

// Hintergrund: remove...() verschiebt die zu löschenden Elemente nur ans Ende und liefert einen Iterator auf den Anfang dieses Bereichs zurück ...
// ... erase() löscht wirklich
erase(
   remove_if(vec.begin(), vec.end(), even),
vec.end());
</code></pre>
<p>(ungetestet)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1576472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1576472</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 04 Sep 2008 12:35:12 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelne Elemente aus Vector löschen on Thu, 04 Sep 2008 14:43:01 GMT]]></title><description><![CDATA[<p><code>std::list</code> wäre besser geeignet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1576552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1576552</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 04 Sep 2008 14:43:01 GMT</pubDate></item></channel></rss>