<?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[Element aus Liste löschen (List iterator not incrementable)]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab hier schon ein paar Artikel zu dem Thema gelesen, klappt aber leider trotzdem nicht.</p>
<p>Hier mein Quellcode:</p>
<pre><code class="language-cpp">typedef list&lt;Fahrzeug*&gt; FahrzeugListe;

void Weg::vAnnahme(Fahrzeug* fz)
{
//Falls Fahrzeug schon auf Weg (z.B. parkend) dann zuerst von Weg löschen
if(!p_ptFahrzeuge.empty())
	{
		FahrzeugListe::iterator itFahrzeugListe;
		for(itFahrzeugListe= p_ptFahrzeuge.begin(); itFahrzeugListe!=p_ptFahrzeuge.end();)
		{
			if(*itFahrzeugListe == fz)
			{
				itFahrzeugListe = p_ptFahrzeuge.erase(itFahrzeugListe);
			}
			else
			{
				++itFahrzeugListe;	
			}
		}
	}
</code></pre>
<p>Aber es kommt immer der Fehler List iterator not inkrementable, aber ich verstehe nicht wieso.##Hoffe hier kann mir jemand nochn Tipp geben</p>
<p>Danke,<br />
Party-Pansen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195336/element-aus-liste-löschen-list-iterator-not-incrementable</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 22:40:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195336.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Oct 2007 17:45:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 17:45:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab hier schon ein paar Artikel zu dem Thema gelesen, klappt aber leider trotzdem nicht.</p>
<p>Hier mein Quellcode:</p>
<pre><code class="language-cpp">typedef list&lt;Fahrzeug*&gt; FahrzeugListe;

void Weg::vAnnahme(Fahrzeug* fz)
{
//Falls Fahrzeug schon auf Weg (z.B. parkend) dann zuerst von Weg löschen
if(!p_ptFahrzeuge.empty())
	{
		FahrzeugListe::iterator itFahrzeugListe;
		for(itFahrzeugListe= p_ptFahrzeuge.begin(); itFahrzeugListe!=p_ptFahrzeuge.end();)
		{
			if(*itFahrzeugListe == fz)
			{
				itFahrzeugListe = p_ptFahrzeuge.erase(itFahrzeugListe);
			}
			else
			{
				++itFahrzeugListe;	
			}
		}
	}
</code></pre>
<p>Aber es kommt immer der Fehler List iterator not inkrementable, aber ich verstehe nicht wieso.##Hoffe hier kann mir jemand nochn Tipp geben</p>
<p>Danke,<br />
Party-Pansen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386600</guid><dc:creator><![CDATA[Party-Pansen]]></dc:creator><pubDate>Tue, 16 Oct 2007 17:45:48 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 18:07:01 GMT]]></title><description><![CDATA[<p>probiers mal ohne das typedef!!</p>
<pre><code class="language-cpp">void Weg::vAnnahme(Fahrzeug* fz)
{
//Falls Fahrzeug schon auf Weg (z.B. parkend) dann zuerst von Weg löschen
if(!p_ptFahrzeuge.empty()){

        for(list&lt;Fahrzeug*&gt;::iterator itFahrzeugListe = p_ptFahrzeuge.begin(); itFahrzeugListe!=p_ptFahrzeuge.end();++itFahrzeugListe){
            if(*itFahrzeugListe == fz)
               p_ptFahrzeuge.erase(itFahrzeugListe);

        }
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1386615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386615</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 16 Oct 2007 18:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 19:33:37 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>probiers mal ohne das typedef!!</p>
</blockquote>
<p>Was soll das denn bringen?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Ein typedef ist ein reiner Alias, das ist dir hoffentlich klar, oder?<br />
Abgesehen davon macht dein Code Quatsch, den der des Threadstellers nicht gemacht hat. Die Zuweisung des Rückgabewertes von erase war denke ich durchaus beabsichtigt.</p>
<p>@OP<br />
Wie sieht denn der Fehler genau aus? Dein Code sieht eigentlich nicht falsch aus (bis auf das möglicherweise sehr unelegante Zeigerhantiere). Außerdem solltest du vielleicht std::set und kürzere Variablennamen in Betracht ziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386637</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Tue, 16 Oct 2007 19:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 18:26:27 GMT]]></title><description><![CDATA[<p>@flimor: Ich weis aber hatte damit auch mal probleme</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386641</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 16 Oct 2007 18:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 20:35:34 GMT]]></title><description><![CDATA[<p>was meinst du mit std::set ??</p>
<p>Kürzere Dateinamen sind nicht drin, hab ich von neer Aufgabenstellung so vorgegeben. Hab auch ehrlich gesagt im moment nicht die Ahnung warum ich mir von erase einen Wert zurückgeben lasse(Was gibt er zurück ??) Hatte das halt so ausprobiert, weil ich das hier aus anderen Beispielen so hatte.</p>
<p>Das ganze soll halt nur, falls vorhanden fz aus der Liste löschen</p>
<p>Der Compiler stürzt halt mit dem beschriebenen Fehler ab, was willste mehr hören?</p>
<p>Party-Pansen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386722</guid><dc:creator><![CDATA[Party-Pansen]]></dc:creator><pubDate>Tue, 16 Oct 2007 20:35:34 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 20:47:59 GMT]]></title><description><![CDATA[<p>ob es daran liegt, dass in der schleife nur beim else-teil der iterator erhoeht wird? vielleicht meckert der compiler deshalb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386736</guid><dc:creator><![CDATA[crashterpiece]]></dc:creator><pubDate>Tue, 16 Oct 2007 20:47:59 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 21:11:23 GMT]]></title><description><![CDATA[<p>abgesehen davon, dass der vergleich auf identität mit elementen einer liste von pointern zu undefinierten resultaten führen kann (besonders, wenn aus der liste elmente gelöscht werden), sieht der restliche code eigentlich ok aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386752</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Tue, 16 Oct 2007 21:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Tue, 16 Oct 2007 21:13:40 GMT]]></title><description><![CDATA[<p>Naja so wie das aussieht, ist ja sichergestellt, dass es das Fahrzeug nur einmal auf dem &quot;Weg&quot; gibt. Dann reicht einfach:</p>
<pre><code class="language-cpp">std::list&lt;Fahrzeug*&gt;::iterator it = std::find(p_ptFahrzeuge.begin(), p_ptFahrzeuge.end(), fz);
if (it != p_ptFahrzeuge.end()) p_ptFahrzeuge.erase(it);
</code></pre>
<p>Ansonsten guck dir mal <a href="http://www.cplusplus.com/reference/stl/list/erase.html" rel="nofollow">http://www.cplusplus.com/reference/stl/list/erase.html</a> an.</p>
<blockquote>
<p>[...] Was gibt er zurück? [...]</p>
</blockquote>
<p>Einen Iterator auf das Element, dass nach dem gelöschten liegt/lag. Deswegen ist auch die Erhöhung des Iterators da falsch(s.BorisDieKlinge: So sieht es aus wenn man denkt es drauf zu haben aber nur mist fabriziert :P), da der vorherige Iterator, der erhöht werden soll, nicht mehr gültig ist.</p>
<blockquote>
<p>Was meinst du mit std::set? [...]</p>
</blockquote>
<p>Das: <a href="http://www.cplusplus.com/reference/stl/set/" rel="nofollow">http://www.cplusplus.com/reference/stl/set/</a></p>
<blockquote>
<p>Der Compiler stürzt halt mit dem beschriebenen Fehler ab, was willst du noch wissen?</p>
</blockquote>
<p>Na das bezweifel ich jetzt mal stark <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /> Der Compiler gibt höchstens eine Fehlermeldung aus ... abstürzen tut der aber normal nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<blockquote>
<p>Aber es kommt immer der Fehler List iterator not inkrementable, aber ich verstehe nicht wieso.## Hoffe, dass mir hier jemand noch einen Tipp geben kann!</p>
</blockquote>
<p>Zitier mal die genaue Fehlermeldung und die Zeile, in welcher der Fehler auftritt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386753</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 16 Oct 2007 21:13:40 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Wed, 17 Oct 2007 06:47:47 GMT]]></title><description><![CDATA[<p>find oder std::find klappt nicht</p>
<p>find: identifier not found</p>
<p>find is not a member of std</p>
<p>woran kann das liegen ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386841</guid><dc:creator><![CDATA[Party-Pansen]]></dc:creator><pubDate>Wed, 17 Oct 2007 06:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Wed, 17 Oct 2007 06:49:18 GMT]]></title><description><![CDATA[<p>Party-Pansen schrieb:</p>
<blockquote>
<p>find oder std::find klappt nicht</p>
<p>find: identifier not found</p>
<p>find is not a member of std</p>
</blockquote>
<p>für std::find benötigst du den Header &lt;algorthm&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386844</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 17 Oct 2007 06:49:18 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Wed, 17 Oct 2007 06:52:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;functional&gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1386847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386847</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 17 Oct 2007 06:52:12 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Wed, 17 Oct 2007 07:17:01 GMT]]></title><description><![CDATA[<p>SO, hab das ganze jetzt rausbekommen und zwar hab ichs jetzt einfach mit remove(fz) gemacht.</p>
<p>Jetzt hab ich aber ein anderes Problem:</p>
<pre><code class="language-cpp">FahrzeugListe::iterator itFahrzeugListe;//Neuen Iteratur zum Durchlauf definieren
	for (itFahrzeugListe=p_ptFahrzeuge.begin(); itFahrzeugListe!=p_ptFahrzeuge.end(); itFahrzeugListe++)//Schleifendurchlauf durch Fahrzeuge auf Weg
	{
		try
		{
			(*itFahrzeugListe)-&gt;vAbfertigung();	//Einzelnes Fahrzeug abfertigen
		}
		catch(FahrAusnahme &amp;x)
		{
			x.vBearbeiten();
		}
	}
</code></pre>
<p>und zwar kann jetzt durch x.vBearbeiten genau diese Funktion mit dem löschen ausgeführt werden. Ich schreib bewusst kann, da es auch ohne das löschen sein kann. Danach wird auch wieder mit pusback ein Element eingefügt. Jetzt hab ich aber das Problem, das in dem Moment wo vBeabreiten aufgerufen wird er Iterator itFahrzeuListe undefiniert wird und ich auf jeden fall auch die meldung not incrementable bekomme, was ja auch logisch ist. Was hab</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386862</guid><dc:creator><![CDATA[Party-Pansen]]></dc:creator><pubDate>Wed, 17 Oct 2007 07:17:01 GMT</pubDate></item><item><title><![CDATA[Reply to Element aus Liste löschen (List iterator not incrementable) on Wed, 17 Oct 2007 07:29:26 GMT]]></title><description><![CDATA[<p>So, konnte auch das Problem mittlerweile klären. Vielen Dank für eure Hilfe</p>
<p>Party-Pansen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1386874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1386874</guid><dc:creator><![CDATA[Party-Pansen]]></dc:creator><pubDate>Wed, 17 Oct 2007 07:29:26 GMT</pubDate></item></channel></rss>