<?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[unordered_map]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich arbeite zur Zeit mit der unordered_map aus (dem) TR1. Diese hat zwar den</p>
<pre><code class="language-cpp">Tvalue &amp; operator[] (const Tkey &amp; Key)
</code></pre>
<p>jedoch nicht auch noch in einer const-Version. So dass ich const Klassenreferenzen nicht verwenden kann.</p>
<p>Kann ich nun ohne Probleme bei/mit der Vererbung eine neue Klasse erstellen, die von unordered_map erbt und den operator[] zusätzlich als const implementiert?</p>
<pre><code class="language-cpp">// Zur Vereinfachung auf die vielen Template-Parameter verzeichtet
class MyMap : public unordered_map&lt;Tkey, Tvalue, ...&gt;
{
public:

// Die const-Version
const Tvalue &amp; operator [] (const Tkey &amp; Key) const
{
    // Implementation
}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/233777/unordered_map</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:37:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233777.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Feb 2009 08:06:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unordered_map on Mon, 09 Feb 2009 08:06:50 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich arbeite zur Zeit mit der unordered_map aus (dem) TR1. Diese hat zwar den</p>
<pre><code class="language-cpp">Tvalue &amp; operator[] (const Tkey &amp; Key)
</code></pre>
<p>jedoch nicht auch noch in einer const-Version. So dass ich const Klassenreferenzen nicht verwenden kann.</p>
<p>Kann ich nun ohne Probleme bei/mit der Vererbung eine neue Klasse erstellen, die von unordered_map erbt und den operator[] zusätzlich als const implementiert?</p>
<pre><code class="language-cpp">// Zur Vereinfachung auf die vielen Template-Parameter verzeichtet
class MyMap : public unordered_map&lt;Tkey, Tvalue, ...&gt;
{
public:

// Die const-Version
const Tvalue &amp; operator [] (const Tkey &amp; Key) const
{
    // Implementation
}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1660328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660328</guid><dc:creator><![CDATA[Georg123]]></dc:creator><pubDate>Mon, 09 Feb 2009 08:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to unordered_map on Mon, 09 Feb 2009 09:44:46 GMT]]></title><description><![CDATA[<p>Du würdest mit const-Indizierung aber die Semantik von Container Map (bzw. unordered-map) ändern. Durch den Index-Operator werden nämlich ein Key-Value-Paar erstellt, falls der angefragte Key noch nicht existiert... und damit kann die map nicht const sein.</p>
<p>Insofern wenn, dann private Ableitung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660353</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Feb 2009 09:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to unordered_map on Mon, 09 Feb 2009 12:47:52 GMT]]></title><description><![CDATA[<p>Oh, daran habe ich gar nicht gedacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660443</guid><dc:creator><![CDATA[Georg123]]></dc:creator><pubDate>Mon, 09 Feb 2009 12:47:52 GMT</pubDate></item><item><title><![CDATA[Reply to unordered_map on Mon, 09 Feb 2009 14:42:05 GMT]]></title><description><![CDATA[<p>Ich kenne die Map ausm TR1 nicht, aber in der stl::map ist der const-Zugriff mit &quot;map::find&quot; möglich. Ist hier evtl genauso?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660522</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 09 Feb 2009 14:42:05 GMT</pubDate></item><item><title><![CDATA[Reply to unordered_map on Mon, 09 Feb 2009 17:34:59 GMT]]></title><description><![CDATA[<p>Ja, ist möglich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660635</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Feb 2009 17:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to unordered_map on Tue, 10 Feb 2009 06:33:00 GMT]]></title><description><![CDATA[<p>Pellaeon schrieb:</p>
<blockquote>
<p>Ich kenne die Map ausm TR1 nicht, aber in der stl::map ist der const-Zugriff mit &quot;map::find&quot; möglich. Ist hier evtl genauso?</p>
</blockquote>
<p>Hmm, also könnte ich dann den Operator mit unordered_map::find als const implementieren in der abgeleiteten Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660876</guid><dc:creator><![CDATA[Georg123]]></dc:creator><pubDate>Tue, 10 Feb 2009 06:33:00 GMT</pubDate></item><item><title><![CDATA[Reply to unordered_map on Tue, 10 Feb 2009 08:25:30 GMT]]></title><description><![CDATA[<p>Könntest du sicher, aber willst du wirklich die Logik verändern? Es gibt ja einen Unterschied. &quot;operator[]&quot; liefert mir IMMER ein Objekt (Exception-Fall mal ausgenommen). Wenn kein Objekt mit dem Schlüssel vorhanden ist, wird eins angelegt. &quot;find&quot; dagegen liefert end(), wenn der Schlüssel nicht existiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660911</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Tue, 10 Feb 2009 08:25:30 GMT</pubDate></item><item><title><![CDATA[Reply to unordered_map on Wed, 11 Feb 2009 07:29:36 GMT]]></title><description><![CDATA[<p>Pellaeon schrieb:</p>
<blockquote>
<p>Könntest du sicher, aber willst du wirklich die Logik verändern? Es gibt ja einen Unterschied. &quot;operator[]&quot; liefert mir IMMER ein Objekt (Exception-Fall mal ausgenommen). Wenn kein Objekt mit dem Schlüssel vorhanden ist, wird eins angelegt. &quot;find&quot; dagegen liefert end(), wenn der Schlüssel nicht existiert.</p>
</blockquote>
<p>Falls ich diesen Operator wirklich als const-Version bräuchte, werde ich ihn wohl mit find überladen. Falls find() dann end() liefert, werfe ich eine Ausnahme.</p>
<p>Danke Euch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1661512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1661512</guid><dc:creator><![CDATA[Georg123]]></dc:creator><pubDate>Wed, 11 Feb 2009 07:29:36 GMT</pubDate></item></channel></rss>