<?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[Deque Iterator Incompatibel]]></title><description><![CDATA[<p>Hallo Zusammen <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>
<p>Zum Problem. Ich schreibe ein Programm zu Lagerverwaltung, jedoch ergibt sich jetz ein Problem mit der funktion deque.erase(iterator). Hier erstmal der code:</p>
<pre><code class="language-cpp">deque&lt;string&gt; Impnames;
deque&lt;string&gt;::iterator iiter = Impnames.begin();

deque&lt;string&gt; Availnames;
deque&lt;string&gt;::iterator aiter = Availnames.begin();

{
//... Hier werden die beiden Deque's mit werten gefüllt
}

for(iiter=Impnames.begin();iiter!=Impnames.end();++iiter){
	for(aiter=Availnames.begin();aiter!=Availnames.end();++aiter){
		if(aiter==iiter){
			aiter=Availnames.erase(aiter);
			break;
		};
	};
};

...
</code></pre>
<p>Ich weiß dass der Fehler in den for-Schleifen liegt.</p>
<p>Beim Debuggen des Programms kommt dann das Fehlerfenster:</p>
<p>Debug Assertion Failed!</p>
<p>File: c:\...\vc\include\deque<br />
Line: 318</p>
<p>Expression: deque iterators incompatible<br />
...</p>
<p>Hab bereits gegoogelt. Das Problem soll daran liegen, dass beim löschen der iterator seine position verliert und damit ungültig wird.<br />
Es gäbe zwar die möglichkeit das ganz mittels <a href="http://deque.at" rel="nofollow">deque.at</a>(position) zu lösen, jedoch würde ich es schon ganze gerne mit iteratoren lösen (zwecks lernen).</p>
<p>Besten dank im vorraus <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/topic/233547/deque-iterator-incompatibel</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 19:43:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233547.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 05 Feb 2009 18:36:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Deque Iterator Incompatibel on Thu, 05 Feb 2009 18:36:33 GMT]]></title><description><![CDATA[<p>Hallo Zusammen <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>
<p>Zum Problem. Ich schreibe ein Programm zu Lagerverwaltung, jedoch ergibt sich jetz ein Problem mit der funktion deque.erase(iterator). Hier erstmal der code:</p>
<pre><code class="language-cpp">deque&lt;string&gt; Impnames;
deque&lt;string&gt;::iterator iiter = Impnames.begin();

deque&lt;string&gt; Availnames;
deque&lt;string&gt;::iterator aiter = Availnames.begin();

{
//... Hier werden die beiden Deque's mit werten gefüllt
}

for(iiter=Impnames.begin();iiter!=Impnames.end();++iiter){
	for(aiter=Availnames.begin();aiter!=Availnames.end();++aiter){
		if(aiter==iiter){
			aiter=Availnames.erase(aiter);
			break;
		};
	};
};

...
</code></pre>
<p>Ich weiß dass der Fehler in den for-Schleifen liegt.</p>
<p>Beim Debuggen des Programms kommt dann das Fehlerfenster:</p>
<p>Debug Assertion Failed!</p>
<p>File: c:\...\vc\include\deque<br />
Line: 318</p>
<p>Expression: deque iterators incompatible<br />
...</p>
<p>Hab bereits gegoogelt. Das Problem soll daran liegen, dass beim löschen der iterator seine position verliert und damit ungültig wird.<br />
Es gäbe zwar die möglichkeit das ganz mittels <a href="http://deque.at" rel="nofollow">deque.at</a>(position) zu lösen, jedoch würde ich es schon ganze gerne mit iteratoren lösen (zwecks lernen).</p>
<p>Besten dank im vorraus <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/1658670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658670</guid><dc:creator><![CDATA[Neo Gandar]]></dc:creator><pubDate>Thu, 05 Feb 2009 18:36:33 GMT</pubDate></item><item><title><![CDATA[Reply to Deque Iterator Incompatibel on Thu, 05 Feb 2009 18:58:12 GMT]]></title><description><![CDATA[<p>aiter==iiter</p>
<p>du kannst nicht 2 iteratoren vergleichen die auf unterschiedliche sequenzen zeigen. willst du hier nicht uU ein *aiter == *iiter haben? also die strings vergleichen auf die diese beiden iteratoren verweisen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658685</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 05 Feb 2009 18:58:12 GMT</pubDate></item><item><title><![CDATA[Reply to Deque Iterator Incompatibel on Thu, 05 Feb 2009 19:18:47 GMT]]></title><description><![CDATA[<p>Oh man, da liegt einem die Lösung direkt vor Augen aber man sieht sie nicht.</p>
<p>Funktioniert <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>
<p>Vielen Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658692</guid><dc:creator><![CDATA[Neo Gandar]]></dc:creator><pubDate>Thu, 05 Feb 2009 19:18:47 GMT</pubDate></item></channel></rss>