<?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[std::map - enum default value]]></title><description><![CDATA[<pre><code class="language-cpp">enum En { Eins, Zwei, Drei };
std::map&lt;const char*, En&gt; Map;
</code></pre>
<p>Wenn ich nun auf ein Element von Map zugreife, dass noch nicht existiert - welchen Wert hat es denn? Ist das geregelt oder undefiniertes Verhalten?</p>
<p>Allgemeine Frage: Wie legt man den default Wert fuer std::map fest?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308592/std-map-enum-default-value</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 18:05:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308592.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Sep 2012 18:11:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::map - enum default value on Sat, 29 Sep 2012 18:11:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">enum En { Eins, Zwei, Drei };
std::map&lt;const char*, En&gt; Map;
</code></pre>
<p>Wenn ich nun auf ein Element von Map zugreife, dass noch nicht existiert - welchen Wert hat es denn? Ist das geregelt oder undefiniertes Verhalten?</p>
<p>Allgemeine Frage: Wie legt man den default Wert fuer std::map fest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2255589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2255589</guid><dc:creator><![CDATA[MapEnum]]></dc:creator><pubDate>Sat, 29 Sep 2012 18:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to std::map - enum default value on Sat, 29 Sep 2012 18:22:39 GMT]]></title><description><![CDATA[<p>- der Value wird mit dem Defaultkonstruktor initialisiert. Da dem enum ein integraler Datentyp (int, short, ...) zugrunde liegt, wird er mit 0 initialisiert</p>
<p>- afaik kann der Defaultwert nur über den Value-Datentyp beeinflusst werden</p>
<p>- const char* als Key ist ziemlich bescheuert, da der Pointer und nicht der Inhalt des Strings verglichen wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2255592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2255592</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 29 Sep 2012 18:22:39 GMT</pubDate></item><item><title><![CDATA[Reply to std::map - enum default value on Sat, 29 Sep 2012 18:32:35 GMT]]></title><description><![CDATA[<p>Danke für die Antwort.</p>
<p>manni66 schrieb:</p>
<blockquote>
<p>- der Value wird mit dem Defaultkonstruktor initialisiert. Da dem enum ein integraler Datentyp (int, short, ...) zugrunde liegt, wird er mit 0 initialisiert</p>
</blockquote>
<p>Wenn ich den enum-Attributen nicht explizit einen Wert zuweise darf ich davon ausgehen, dass die Zählung mit 0 beginnt?</p>
<p>manni66 schrieb:</p>
<blockquote>
<p>- afaik kann der Defaultwert nur über den Value-Datentyp beeinflusst werden</p>
</blockquote>
<p>Das dachte ich mir fast...</p>
<p>manni66 schrieb:</p>
<blockquote>
<p>- const char* als Key ist ziemlich bescheuert, da der Pointer und nicht der Inhalt des Strings verglichen wird</p>
</blockquote>
<p>Hatte ich auch nicht vor - möchte hierfür eine eigene Klasse verwenden. Ich wollte das Beispiel nur einfach halten. Aber wo wir trotzdem beim Thema sind... Bei eigenen Variablen ist es klar, dass einfach nur die Pointer verglichen werden und nicht der Inhalt. Aber bei festen Strings, wie Map[&quot;String&quot;] .... käme da auch immer ein unterschiedlicher Ergebnis, wenn man das verteilt im Code nutzt oder weist der Compiler dem festen String eine Adresse zu und benutzt dann immer nur die, wenn die Strings gleich sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2255597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2255597</guid><dc:creator><![CDATA[MapEnum]]></dc:creator><pubDate>Sat, 29 Sep 2012 18:32:35 GMT</pubDate></item><item><title><![CDATA[Reply to std::map - enum default value on Sat, 29 Sep 2012 18:46:07 GMT]]></title><description><![CDATA[<p>MapEnum schrieb:</p>
<blockquote>
<p>Wenn ich den enum-Attributen nicht explizit einen Wert zuweise darf ich davon ausgehen, dass die Zählung mit 0 beginnt?</p>
</blockquote>
<p>Ja</p>
<p>MapEnum schrieb:</p>
<blockquote>
<p>Aber bei festen Strings, wie Map[&quot;String&quot;] .... käme da auch immer ein unterschiedlicher Ergebnis, wenn man das verteilt im Code nutzt oder weist der Compiler dem festen String eine Adresse zu und benutzt dann immer nur die, wenn die Strings gleich sind?</p>
</blockquote>
<p>Das kann der Compiler halten wie er will. Oft wird es wohl funktionieren, aber ich würde mich nicht darauf verlassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2255602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2255602</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 29 Sep 2012 18:46:07 GMT</pubDate></item><item><title><![CDATA[Reply to std::map - enum default value on Sat, 29 Sep 2012 19:02:25 GMT]]></title><description><![CDATA[<p>Damit ist mein Problem gelöst, danke. <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>Also bei String-Keys dann wohl besser zu std::string greifen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2255608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2255608</guid><dc:creator><![CDATA[MapEnum]]></dc:creator><pubDate>Sat, 29 Sep 2012 19:02:25 GMT</pubDate></item></channel></rss>