<?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[&amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum bekomme ich bei folgendem Code den oben genannten Fehler:</p>
<pre><code>Kunden::iterator en = daten.end();
	--en;
	e_x = en-&gt;first;
	e_y = en-&gt;second;
	Kunden::iterator next;

	for(Kunden::iterator bz = daten.begin(); bz != daten.end(); bz++)
	{
		next = daten.upper_bound(bz-&gt;first);
		if(next-&gt;first &lt; e_x)
		{
			abstand = next-&gt;first - bz-&gt;first; //hier bekomm ich den Error
                        // usw.
		}
	}
</code></pre>
<p>Danke schon mal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/285676/quot-map-set-iterator-not-derefencable-quot-error</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 06:03:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/285676.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Apr 2011 20:29:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Mon, 25 Apr 2011 20:29:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum bekomme ich bei folgendem Code den oben genannten Fehler:</p>
<pre><code>Kunden::iterator en = daten.end();
	--en;
	e_x = en-&gt;first;
	e_y = en-&gt;second;
	Kunden::iterator next;

	for(Kunden::iterator bz = daten.begin(); bz != daten.end(); bz++)
	{
		next = daten.upper_bound(bz-&gt;first);
		if(next-&gt;first &lt; e_x)
		{
			abstand = next-&gt;first - bz-&gt;first; //hier bekomm ich den Error
                        // usw.
		}
	}
</code></pre>
<p>Danke schon mal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054232</guid><dc:creator><![CDATA[Osterhasenmann]]></dc:creator><pubDate>Mon, 25 Apr 2011 20:29:09 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Mon, 25 Apr 2011 20:36:12 GMT]]></title><description><![CDATA[<p>Was ist denn &quot;Kunden&quot;?<br />
Ansonsten sehe ich in diesem Fragment keine Fehler, vermutlich liegt das Problem woanders.</p>
<p>PS: Was soll dieser Code eigentlich bewirken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054237</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 25 Apr 2011 20:36:12 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Mon, 25 Apr 2011 20:41:28 GMT]]></title><description><![CDATA[<p>Kunden ist eine &lt;int, int&gt; Map.</p>
<p>Durch den Code soll ein Eintrag auf den nächsten überprüft werden und dabei die differenz (abstand) verglichen werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054239</guid><dc:creator><![CDATA[Osterhasenmann]]></dc:creator><pubDate>Mon, 25 Apr 2011 20:41:28 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Mon, 25 Apr 2011 20:47:09 GMT]]></title><description><![CDATA[<p>Wenn bz auf den letzten Eintrag der Map zeigt, liefert</p>
<pre><code class="language-cpp">next = daten.upper_bound(bz-&gt;first);
</code></pre>
<p>daten.end(). Dieser Iterator ist nicht dereferenzierbar - allerdings solltest du den Fehler schon in der Zeile</p>
<pre><code class="language-cpp">if(next-&gt;first &lt; e_x)
</code></pre>
<p>bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054241</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 25 Apr 2011 20:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Mon, 25 Apr 2011 20:49:31 GMT]]></title><description><![CDATA[<p>Und der Code dort oben ist komplett? Dort werden die beteiligten Iteratoren schon vorher verwendet und dereferenziert, also muß es einen anderen Grund geben, warum das innerhalb des if-Blocks nicht mehr funktioniert.</p>
<blockquote>
<p>[quote=&quot;Osterhasenmann&quot;]Durch den Code soll ein Eintrag auf den nächsten überprüft werden und dabei die differenz (abstand) verglichen werden.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
und was ist der Sinn dahinter?<br />
(btw, am Ende der Schleife wird next==daten.end() und dann fliegt dir das Programm um die Ohren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054244</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 25 Apr 2011 20:49:31 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Tue, 26 Apr 2011 17:06:43 GMT]]></title><description><![CDATA[<p>und wie kann ich das beheben? Wenn next==daten.end() wird soll er mit der Abfrage fertig sein und die For-Schleife beenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054694</guid><dc:creator><![CDATA[Osterhasenmann]]></dc:creator><pubDate>Tue, 26 Apr 2011 17:06:43 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Tue, 26 Apr 2011 17:15:23 GMT]]></title><description><![CDATA[<p>Dann solltest du diese Bedingung in deine Abbruchbedingung aufnehmen. Übrigens ist upper_bound() auch nicht gerade der eleganteste Weg, den Nachfolger eines Iterators zu bestimmen <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>
<p>PS: Ist das eigentlich ein Compiler- oder Laufzeitfehler, über den wir hier reden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054696</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 26 Apr 2011 17:15:23 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Tue, 26 Apr 2011 17:22:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(daten.upper_bound(bz-&gt;first)-&gt;first &lt; e_x) //e_x entspricht dem letzten Element der Map
		{
			next = daten.upper_bound(bz-&gt;first);
		} else {
			next = daten.lower_bound(bz-&gt;first); //provisorisch
		}
</code></pre>
<p>Bekomme aber immer noch diesen Laufzeitfehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054698</guid><dc:creator><![CDATA[Osterhasenmann]]></dc:creator><pubDate>Tue, 26 Apr 2011 17:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Tue, 26 Apr 2011 17:33:58 GMT]]></title><description><![CDATA[<p>Du greifst ja auch immer noch auf einen (potentiell) ungültigen Iterator zu. Stattdessen solltest du lieber überprüfen, ob next != daten.end gilt.</p>
<p>Und wie gesagt, upper_bound() ist dort vermutlich Overkill. Die Schlüssel in der map&lt;&gt; sind eindeutig, also ist der upper_bound(bz-&gt;first) gleich dem Nachfolger von bz und lower_bound(bz-&gt;first) ist gleich bz.</p>
<p>Ohne Garantie:</p>
<pre><code class="language-cpp">Kunden::iterator pos=daten.begin(),next=pos;
for( ++next; next!=daten.end(); pos=next++ )
{
  //mach was mit pos (aktuelle Position) und next (nächsthöhere Position)
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2054704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054704</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 26 Apr 2011 17:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Tue, 26 Apr 2011 17:37:58 GMT]]></title><description><![CDATA[<p>Ok, jetzt klappt es!<br />
Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054707</guid><dc:creator><![CDATA[Osterhasenmann]]></dc:creator><pubDate>Tue, 26 Apr 2011 17:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Map&#x2F;Set Iterator not derefencable&amp;quot; Error on Tue, 26 Apr 2011 18:45:30 GMT]]></title><description><![CDATA[<p>Du musst dafür allerdings sicherstellen, dass die Map nicht leer ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2054721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2054721</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Tue, 26 Apr 2011 18:45:30 GMT</pubDate></item></channel></rss>