<?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[Expression: list iterator not incrementable]]></title><description><![CDATA[<p>Einen wunderschönen guten Abend!</p>
<p>Ich habe hier einen Codeausschnitt, welcher in einer Liste mit Schüssen checkt ob diese noch &quot;leben&quot; und falls nicht diese löscht.<br />
Wenn diese Liste nun leer ist, bekommt ich die Fehlermeldung<br />
<em>Expression: list iterator not incrementable</em>.<br />
Hat jemand eine Idee woran das liegen kann? Bin noch mehr als weniger Anfänger in C++...</p>
<pre><code>for (auto it = mList.begin(); it != mList.end(); )
{
                if ((*it)-&gt;getIsAlive()==false)
                   {
                        delete(*it);
                       (*it) = nullptr;

                        it = mList.erase(it);
                   }

                 else
                {
                         it++;
                        (*it)-&gt;update(frametime);
                }
}
</code></pre>
<p>Vielen Dank im vorraus, bei weiteren Fragen kann ich natürlich auch mehr vom Code posten!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338858/expression-list-iterator-not-incrementable</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 01:15:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338858.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jul 2016 15:14:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Fri, 15 Jul 2016 15:19:23 GMT]]></title><description><![CDATA[<p>Einen wunderschönen guten Abend!</p>
<p>Ich habe hier einen Codeausschnitt, welcher in einer Liste mit Schüssen checkt ob diese noch &quot;leben&quot; und falls nicht diese löscht.<br />
Wenn diese Liste nun leer ist, bekommt ich die Fehlermeldung<br />
<em>Expression: list iterator not incrementable</em>.<br />
Hat jemand eine Idee woran das liegen kann? Bin noch mehr als weniger Anfänger in C++...</p>
<pre><code>for (auto it = mList.begin(); it != mList.end(); )
{
                if ((*it)-&gt;getIsAlive()==false)
                   {
                        delete(*it);
                       (*it) = nullptr;

                        it = mList.erase(it);
                   }

                 else
                {
                         it++;
                        (*it)-&gt;update(frametime);
                }
}
</code></pre>
<p>Vielen Dank im vorraus, bei weiteren Fragen kann ich natürlich auch mehr vom Code posten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502470</guid><dc:creator><![CDATA[SatchBoogie]]></dc:creator><pubDate>Fri, 15 Jul 2016 15:19:23 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Fri, 15 Jul 2016 16:02:35 GMT]]></title><description><![CDATA[<p>Ich sehe nicht, wie der Codeabschnitt den Fehler erzeugen soll. Du hast ihn aus dem Original kopiert? std::list?</p>
<p>Zeile 13 und 14 sind vertauscht.</p>
<p>Zeile 6 ist sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502475</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 15 Jul 2016 16:02:35 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Fri, 15 Jul 2016 16:04:09 GMT]]></title><description><![CDATA[<p><code>std::list&lt;&gt;::iterator</code> ist ein bidirektionaler Iterator, ich versteh nicht wo das Problem sein soll.<br />
Darf ich fragen warum du keinen Vector benutzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502476</guid><dc:creator><![CDATA[funda]]></dc:creator><pubDate>Fri, 15 Jul 2016 16:04:09 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Fri, 15 Jul 2016 17:40:18 GMT]]></title><description><![CDATA[<p>HALT, STOP,<br />
ich hab hier was verwechselt.<br />
Wenn ich das &quot;it++&quot; oben in der for Schleife anstatt im else mit unterbringe, dann kommt der Fehler wenn die Liste leer ist.<br />
Wenn ich wie jetzt das it++ im else habe, kommt der Fehler wenn ich das erste mal einen Shot spawnen möchte.</p>
<p>Enschuldigt bitte, ich gerate noch durcheinander :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502483</guid><dc:creator><![CDATA[SatchBoogie]]></dc:creator><pubDate>Fri, 15 Jul 2016 17:40:18 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Fri, 15 Jul 2016 17:48:07 GMT]]></title><description><![CDATA[<p>Mit einer leeren Liste wird die Schleife garnicht ausgeführt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502484</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 15 Jul 2016 17:48:07 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Fri, 15 Jul 2016 20:48:44 GMT]]></title><description><![CDATA[<p>SatchBoogie schrieb:</p>
<blockquote>
<p>Wenn ich das &quot;it++&quot; oben in der for Schleife anstatt im else mit unterbringe, dann kommt der Fehler wenn die Liste leer ist.</p>
</blockquote>
<p>Angenommen <code>erase()</code> setzt it auf <code>mList.end()</code> (weil es das letzte Element gelöscht hat) und das <code>++it</code> im Schleifenkopf will <code>it</code> dann noch weiterbewegen...</p>
<p>SatchBoogie schrieb:</p>
<blockquote>
<p>Wenn ich wie jetzt das it++ im else habe, kommt der Fehler wenn ich das erste mal einen Shot spawnen möchte.</p>
</blockquote>
<p>Was passiert denn im <code>else</code> Zweig mit dem geschundenen Iterator? <em>erst</em> erhöhen, <em>dann</em> dereferenzieren?! Ist das cool? Insbesondere beim letzten Element?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502497</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Fri, 15 Jul 2016 20:48:44 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Sat, 16 Jul 2016 07:49:57 GMT]]></title><description><![CDATA[<p>AHH selbsverständlich Furble!<br />
Ich muss natürlich erst mit it arbeiten (also in diesem Falle</p>
<pre><code>(*it)-&gt;update(frametime);
</code></pre>
<p>und dann it erst erhöhen!<br />
Vielen Dank für den Tipp, ist logisch, aber auch<br />
Übungssache :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502527</guid><dc:creator><![CDATA[SatchBoogie]]></dc:creator><pubDate>Sat, 16 Jul 2016 07:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Tue, 19 Jul 2016 11:11:14 GMT]]></title><description><![CDATA[<p>SatchBoogie schrieb:</p>
<blockquote>
<p>Einen wunderschönen guten Abend!</p>
<pre><code>delete(*it);
                       (*it) = nullptr;
</code></pre>
</blockquote>
<p>Kleiner Tip am Rande,</p>
<p>du solltest in deiner Liste keine rohen Zeiger speichern. Nimm lieber unique_ptr. Da kannst du die den Kram oben sparen, da die automatisch mit Löschen des Eintrags in der Liste freigegeben werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502763</guid><dc:creator><![CDATA[gast45241234]]></dc:creator><pubDate>Tue, 19 Jul 2016 11:11:14 GMT</pubDate></item><item><title><![CDATA[Reply to Expression: list iterator not incrementable on Thu, 21 Jul 2016 10:07:23 GMT]]></title><description><![CDATA[<p>genau das Problem hatte ich damals auch. Es handelt sich hierbei um SFML Programmierung mit snem KometenWeltraum Shooter. War damals über den gleichen Fehler gestolpert und habe dann ebenfalls Smart Pointer verwendet. Da die Objekte auf die die Pointer in der Liste zeigen Asteroiden sind, die nach unterschiedlichen Sekunden gelöscht werden und nicht sequentiell, macht ne Liste durchaus Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2502933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2502933</guid><dc:creator><![CDATA[Sewing]]></dc:creator><pubDate>Thu, 21 Jul 2016 10:07:23 GMT</pubDate></item></channel></rss>