<?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[Problem mit Iterator-const correctness]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen map-Container als Member, in dem ich nach einem best. gemappten Wert suche. Das problem besteht darin, dass alle map-Funktionen mir einen const_iterator zurückgeben, ich aber einen non-const-qualified-Iterator zum späteren Entfernen des Elements brauche. Dieses Verhalten kann ich nicht nachvollziehen. Hier der Code (alles passiert in einer Klasse):</p>
<pre><code>std::map&lt;std::string, BBox&gt;::iterator BBit;
	for (BBit = PIIs_in_XML.begin(); BBit != PIIs_in_XML.end(); ++BBit)
		//[...]
</code></pre>
<p>Die Membervariable ist so deklariert bzw. initialisiert:</p>
<pre><code>std::map&lt;std::string, BBox&gt; PIIs_in_XML;
//[...]
//ctor:
	XMLParser parser (confINI-&gt;at(&quot;XMLfileLocation&quot;));
	PIIs_in_XML = parser.get_PII_files();
</code></pre>
<p>Der Compiler sagt dann</p>
<blockquote>
<p>error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::_Tree_const_iterator&lt;_Mytree&gt;' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
</blockquote>
<p>Ich dachte die map-Methoden liefern konstante Iteratoren nur, wenn das Objekt konstant ist - und das ist es in meinem Fall bestimmt nicht. Danke für die Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/314559/problem-mit-iterator-const-correctness</link><generator>RSS for Node</generator><lastBuildDate>Sat, 01 Aug 2026 04:31:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/314559.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Mar 2013 12:17:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Iterator-const correctness on Wed, 06 Mar 2013 12:17:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen map-Container als Member, in dem ich nach einem best. gemappten Wert suche. Das problem besteht darin, dass alle map-Funktionen mir einen const_iterator zurückgeben, ich aber einen non-const-qualified-Iterator zum späteren Entfernen des Elements brauche. Dieses Verhalten kann ich nicht nachvollziehen. Hier der Code (alles passiert in einer Klasse):</p>
<pre><code>std::map&lt;std::string, BBox&gt;::iterator BBit;
	for (BBit = PIIs_in_XML.begin(); BBit != PIIs_in_XML.end(); ++BBit)
		//[...]
</code></pre>
<p>Die Membervariable ist so deklariert bzw. initialisiert:</p>
<pre><code>std::map&lt;std::string, BBox&gt; PIIs_in_XML;
//[...]
//ctor:
	XMLParser parser (confINI-&gt;at(&quot;XMLfileLocation&quot;));
	PIIs_in_XML = parser.get_PII_files();
</code></pre>
<p>Der Compiler sagt dann</p>
<blockquote>
<p>error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::_Tree_const_iterator&lt;_Mytree&gt;' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
</blockquote>
<p>Ich dachte die map-Methoden liefern konstante Iteratoren nur, wenn das Objekt konstant ist - und das ist es in meinem Fall bestimmt nicht. Danke für die Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2304719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2304719</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Wed, 06 Mar 2013 12:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Iterator-const correctness on Wed, 06 Mar 2013 12:22:16 GMT]]></title><description><![CDATA[<p>Ist die Methode, in der dieser Code steht,</p>
<p>[Rewind] schrieb:</p>
<blockquote>
<pre><code>std::map&lt;std::string, BBox&gt;::iterator BBit;
	for (BBit = PIIs_in_XML.begin(); BBit != PIIs_in_XML.end(); ++BBit)
		//[...]
</code></pre>
</blockquote>
<p>const ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2304722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2304722</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 06 Mar 2013 12:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Iterator-const correctness on Wed, 06 Mar 2013 12:23:07 GMT]]></title><description><![CDATA[<p>Antwort: facepalm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2304724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2304724</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Wed, 06 Mar 2013 12:23:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Iterator-const correctness on Wed, 06 Mar 2013 13:31:57 GMT]]></title><description><![CDATA[<p>&gt; zum späteren Entfernen des Elements</p>
<p>braucht man ab C++11 auch nur noch einen const_iterator. erase ist natürlich weiterhin nicht const-qualifiziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2304753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2304753</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 06 Mar 2013 13:31:57 GMT</pubDate></item></channel></rss>