<?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::list Objekt aus der Mitte löschen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Liste mit Objekten von Flugzeugdaten, jetzt möchte ich ein beliebiges Objekt löschen, also irgendwo von der Mitte, nicht am Anfang, oder Ende.<br />
Dachte das müsste mit erase gehen, aber igendwie bekomme ich es nicht hin <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>
<p>Folgender Code</p>
<pre><code class="language-cpp">void einFlugzeugLoeschen(FlugzeugListe&amp; alleFlugzeuge)
{

	if(!alleFlugzeuge.empty())
	{
		bool found = false;
	string flugnummer;
	string tempflugnummer;
	cout &lt;&lt; &quot;Bitte Flugnummer des Flugzeuges eingeben, dass landen soll:&quot;;
	cin&gt;&gt; flugnummer;
	FlugzeugListe::iterator iter = alleFlugzeuge.begin();

	for(iter; iter != alleFlugzeuge.end(); ++iter)
	{
		if(flugnummer == iter-&gt;getFlightNumber())
		{
			alleFlugzeuge.erase(Flugzeuge(iter-&gt;getFlightNumber(),iter-&gt;getStartAirport(),
				iter-&gt;getLandingHour(),iter-&gt;getLandingMinutes())); // geht leider nicht.. 

			found = true;
		}//end if
	}//end for
	if(found == false)
	{
		cout &lt;&lt; &quot;\n#### Flugnummer wurde nicht gefunden #####&quot; &lt;&lt; endl;
	}// end if
	}// end if
	else
		cout &lt;&lt; &quot;\n#### Flugliste ist Leer #### &quot;&lt;&lt; endl;
}
</code></pre>
<p>Wäre fur jeden sinnvollen Vorschlag dankbar.<br />
Gruss<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185901/std-list-objekt-aus-der-mitte-löschen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:02:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185901.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Jul 2007 17:18:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 17:20:26 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Liste mit Objekten von Flugzeugdaten, jetzt möchte ich ein beliebiges Objekt löschen, also irgendwo von der Mitte, nicht am Anfang, oder Ende.<br />
Dachte das müsste mit erase gehen, aber igendwie bekomme ich es nicht hin <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>
<p>Folgender Code</p>
<pre><code class="language-cpp">void einFlugzeugLoeschen(FlugzeugListe&amp; alleFlugzeuge)
{

	if(!alleFlugzeuge.empty())
	{
		bool found = false;
	string flugnummer;
	string tempflugnummer;
	cout &lt;&lt; &quot;Bitte Flugnummer des Flugzeuges eingeben, dass landen soll:&quot;;
	cin&gt;&gt; flugnummer;
	FlugzeugListe::iterator iter = alleFlugzeuge.begin();

	for(iter; iter != alleFlugzeuge.end(); ++iter)
	{
		if(flugnummer == iter-&gt;getFlightNumber())
		{
			alleFlugzeuge.erase(Flugzeuge(iter-&gt;getFlightNumber(),iter-&gt;getStartAirport(),
				iter-&gt;getLandingHour(),iter-&gt;getLandingMinutes())); // geht leider nicht.. 

			found = true;
		}//end if
	}//end for
	if(found == false)
	{
		cout &lt;&lt; &quot;\n#### Flugnummer wurde nicht gefunden #####&quot; &lt;&lt; endl;
	}// end if
	}// end if
	else
		cout &lt;&lt; &quot;\n#### Flugliste ist Leer #### &quot;&lt;&lt; endl;
}
</code></pre>
<p>Wäre fur jeden sinnvollen Vorschlag dankbar.<br />
Gruss<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317045</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Mon, 02 Jul 2007 17:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 17:30:05 GMT]]></title><description><![CDATA[<p>du musst erase() einen iterator übergeben. Dieser ist nebenbeibemerkt danach ungültig</p>
<pre><code class="language-cpp">while(iter != alleFlugzeuge.end())
    {
        if(flugnummer == iter-&gt;getFlightNumber())
        {
            alleFlugzeuge.erase(iter++); //Postinkrement, da iter sonst ungültig wird

            found = true;
        }
        else
        {
            iter++;//Wenn der aktuelle Datensatz nicht der gesuchte ist müssen wir den iterator trotzdem weiterbewegen
        }
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1317054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317054</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Mon, 02 Jul 2007 17:30:05 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 17:37:08 GMT]]></title><description><![CDATA[<p><strong>WOW, genial!</strong></p>
<p>vielen Dank!</p>
<p>Gruss<br />
Joe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317061</guid><dc:creator><![CDATA[einarmjoe]]></dc:creator><pubDate>Mon, 02 Jul 2007 17:37:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 19:15:30 GMT]]></title><description><![CDATA[<p>und jetzt das ganze nochmal mit boost::lambda</p>
<pre><code class="language-cpp">Flugzeugliste::iterator end = remove_if(
  alleFlugzeuge.begin(),
  alleFlugzeuge.end(),
  bind(Flugzeug::getFlightNumber, _1) == flugnummer));
alleFlugzeuge.erase( end, alleFlugzeuge.end());
</code></pre>
<p>*denkfehler gefixt #2*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317063</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Mon, 02 Jul 2007 19:15:30 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 17:56:34 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@Topic</a>:<br />
Sicherer dürfte sein, den Iterator den erase zurückgibt zu verwenden:</p>
<pre><code class="language-cpp">iter=alleFlugzeuge.erase(iter);
</code></pre>
<p>@r0nny:<br />
Da fehlt aber noch das alleFlugzeuge.erase( ergebnis_von_remove_if, alleFlugzeuge.end() ) <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1317068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317068</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 02 Jul 2007 17:56:34 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 18:21:03 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10648">@LordJaxom</a><br />
<a href="http://cppreference.com/cppalgorithm/remove_if.html" rel="nofollow">http://cppreference.com/cppalgorithm/remove_if.html</a> ist da leicht verwirrend</p>
<p>ich bin davon ausgegangen, das die elemente tatsächlich entfernt werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317090</guid><dc:creator><![CDATA[ronny]]></dc:creator><pubDate>Mon, 02 Jul 2007 18:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 18:24:43 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26836">@Topic</a>:<br />
Sicherer dürfte sein, den Iterator den erase zurückgibt zu verwenden:</p>
<pre><code class="language-cpp">iter=alleFlugzeuge.erase(iter);
</code></pre>
</blockquote>
<p>Aber nicht in einer Schleife, wo irgendwo ++iter steht, da man so ein Element verliert ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317092</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 02 Jul 2007 18:24:43 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 18:28:47 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Aber nicht in einer Schleife, wo irgendwo ++iter steht, da man so ein Element verliert ...</p>
</blockquote>
<p>Der Auszug war auch für die direkte Verwendung im if-Zweig der Bedingung im Codebeispiel von r0nny gedacht <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1317093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317093</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 02 Jul 2007 18:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 18:31:24 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>KasF schrieb:</p>
<blockquote>
<p>Aber nicht in einer Schleife, wo irgendwo ++iter steht, da man so ein Element verliert ...</p>
</blockquote>
<p>Der Auszug war auch für die direkte Verwendung im if-Zweig der Bedingung im Codebeispiel von r0nny gedacht <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>Achso sry, meinst aber bestimmt von darthdespotism <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1317094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317094</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 02 Jul 2007 18:31:24 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 18:32:25 GMT]]></title><description><![CDATA[<p>Äh, ja. Ronny hat mich grad auch drauf hingewiesen.</p>
<p>(Warum gibt's hier keinen Hinter-Mauer-Versteck-Smiley?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317096</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 02 Jul 2007 18:32:25 GMT</pubDate></item><item><title><![CDATA[Reply to std::list Objekt aus der Mitte löschen on Mon, 02 Jul 2007 18:40:15 GMT]]></title><description><![CDATA[<p>Ähh ronny, das stimmt immer noch nicht so <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317102</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 02 Jul 2007 18:40:15 GMT</pubDate></item></channel></rss>