<?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[Zugriff auf const std::map]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein kleines Problem beim Zugreifen auf die Elemente einer Matrix von double-Werten, die als geschachtelter Map-Container definiert ist:</p>
<pre><code class="language-cpp">const std::map&lt; uint, std::map&lt; uint, double &gt; &gt; matrix;
</code></pre>
<p>Da die Matrix const ist, kann ich nicht den Indexoperator, sondern nur die find()-Methode für den Zugriff verwenden. Allerdings weiß ich nicht wirklich, wie ich das anstellen soll. Ich habe es mit</p>
<pre><code class="language-cpp">std::map&lt; uint, std::map&lt; uint, double &gt; &gt;::const_iterator::it = matrix.find( i );
</code></pre>
<p>versucht, aber it ist dann nicht wirklich ein Zeiger auf die inneren map-Container vom Typ std::map&lt; uint, double &gt;, sondern bereits ein Element vom Typ std::pair&lt; uint, double &gt;. Ich würde allerdings gerne irgendwie auf den double Wert an der Stelle (i, j) der Matrix zugreifen.</p>
<p>Wäre super, wenn mir jemand ein kurzes Beispiel posten könnte, wie man sowas bewerkstelligen kann. Ich habe schon alles ausprobiert, aber mir fliegen die Compilerfehler nur so um die Ohren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
<p>Vielen Dank im Voraus<br />
SweetNuthin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166246/zugriff-auf-const-std-map</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 07:43:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166246.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Nov 2006 14:25:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriff auf const std::map on Mon, 27 Nov 2006 14:25:08 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein kleines Problem beim Zugreifen auf die Elemente einer Matrix von double-Werten, die als geschachtelter Map-Container definiert ist:</p>
<pre><code class="language-cpp">const std::map&lt; uint, std::map&lt; uint, double &gt; &gt; matrix;
</code></pre>
<p>Da die Matrix const ist, kann ich nicht den Indexoperator, sondern nur die find()-Methode für den Zugriff verwenden. Allerdings weiß ich nicht wirklich, wie ich das anstellen soll. Ich habe es mit</p>
<pre><code class="language-cpp">std::map&lt; uint, std::map&lt; uint, double &gt; &gt;::const_iterator::it = matrix.find( i );
</code></pre>
<p>versucht, aber it ist dann nicht wirklich ein Zeiger auf die inneren map-Container vom Typ std::map&lt; uint, double &gt;, sondern bereits ein Element vom Typ std::pair&lt; uint, double &gt;. Ich würde allerdings gerne irgendwie auf den double Wert an der Stelle (i, j) der Matrix zugreifen.</p>
<p>Wäre super, wenn mir jemand ein kurzes Beispiel posten könnte, wie man sowas bewerkstelligen kann. Ich habe schon alles ausprobiert, aber mir fliegen die Compilerfehler nur so um die Ohren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
<p>Vielen Dank im Voraus<br />
SweetNuthin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182386</guid><dc:creator><![CDATA[SweetNuthin]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:25:08 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf const std::map on Mon, 27 Nov 2006 14:45:41 GMT]]></title><description><![CDATA[<p>Hallo,<br />
habs mir mal in mein VS kopiert. Die nächste Zeile sieht dann bei mir so aus:</p>
<pre><code class="language-cpp">std::map&lt; uint, std::map&lt; uint, double &gt; &gt;::const_iterator it2 = it-&gt;second.find(j);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1182417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182417</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf const std::map on Mon, 27 Nov 2006 14:54:24 GMT]]></title><description><![CDATA[<p>templäd schrieb:</p>
<blockquote>
<p>habs mir mal in mein VS kopiert. Die nächste Zeile sieht dann bei mir so aus:</p>
<pre><code class="language-cpp">std::map&lt; uint, std::map&lt; uint, double &gt; &gt;::const_iterator it2 = it-&gt;second.find(j);
</code></pre>
</blockquote>
<p>Danke für die schnelle Antwort, templäd! Direkt so hat es bei mir nicht funktioniert, aber du hast mich auf die richtige Idee gebracht:</p>
<pre><code class="language-cpp">std::map&lt; uint, std::map&lt; uint, double &gt; &gt;::const_iterator it = matrix.find( i );
std::map&lt; uint, double &gt;::const_iterator it2 = it-&gt;second.find( j );
os &lt;&lt; it2-&gt;second;
</code></pre>
<p>Vielen Dank nochmals...<br />
SweetNuthin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182426</guid><dc:creator><![CDATA[SweetNuthin]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf const std::map on Mon, 27 Nov 2006 15:04:30 GMT]]></title><description><![CDATA[<p>Weiß jemand, wieso der Operator '[]' in C++ unbedingt ein nicht-statisches Klassenmitglied sein muss? Ich hätte nämlich spontan die Idee gehabt, den fehlenden konstanten []-Operator nachzuliefern, aber der Code klappt aufgrund dieser Einschränkung nicht. Fast jeder andere Operator funktioniert -- aber irgendwie sieht es affig aus zu schreiben 'map1 + abc', wenn man eigentlich meint 'map1[abc]'. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1182437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182437</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 27 Nov 2006 15:04:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf const std::map on Mon, 27 Nov 2006 15:33:51 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Weiß jemand, wieso der Operator '[]' in C++ unbedingt ein nicht-statisches Klassenmitglied sein muss?</p>
</blockquote>
<p>Weil der Operator this-abhängig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182460</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 27 Nov 2006 15:33:51 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriff auf const std::map on Mon, 27 Nov 2006 15:52:27 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Weiß jemand, wieso der Operator '[]' in C++ unbedingt ein nicht-statisches Klassenmitglied sein muss?</p>
</blockquote>
<p>Weil der Operator this-abhängig ist.</p>
</blockquote>
<p>Sind das die anderen Operatoren nicht auch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182483</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 27 Nov 2006 15:52:27 GMT</pubDate></item></channel></rss>