<?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[Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ?]]></title><description><![CDATA[<p>Hallo liebe C++ - Gemeinde,</p>
<p>ich habe ein Problem und hoffe, dass hier jemad mir helfen kann.</p>
<p>ich brauche eine Collection wie Z.B Map( key, value ).</p>
<p>Mein key ist String und value hat unterschiedliche Datentypen:<br />
unsigned char, signed char,<br />
unsigned short, signed short,<br />
unsigned long, signed long usw.</p>
<p>gibt es solche Collection bei c++ , die so was aufnehnen kann. <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="😕"
    /> <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="😕"
    /></p>
<p>danke für alle</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191481/collection-wie-z-b-map-key-value-und-value-mit-unterschiedlichen-datentypen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 03:49:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191481.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Sep 2007 15:35:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ? on Mon, 03 Sep 2007 15:35:40 GMT]]></title><description><![CDATA[<p>Hallo liebe C++ - Gemeinde,</p>
<p>ich habe ein Problem und hoffe, dass hier jemad mir helfen kann.</p>
<p>ich brauche eine Collection wie Z.B Map( key, value ).</p>
<p>Mein key ist String und value hat unterschiedliche Datentypen:<br />
unsigned char, signed char,<br />
unsigned short, signed short,<br />
unsigned long, signed long usw.</p>
<p>gibt es solche Collection bei c++ , die so was aufnehnen kann. <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="😕"
    /> <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="😕"
    /></p>
<p>danke für alle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358073</guid><dc:creator><![CDATA[rena]]></dc:creator><pubDate>Mon, 03 Sep 2007 15:35:40 GMT</pubDate></item><item><title><![CDATA[Reply to Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ? on Mon, 03 Sep 2007 15:47:43 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>im &quot;Standardumfang&quot; nicht, das widerspräche der Typsicherheit (zur Compilezeit).<br />
Also wenn ich mir so Deine &quot;Auswahl&quot; ansehe, scheint mir, dass Du mit einer std::map&lt;std::string, long&gt; wohl ganz gut bedient wärst ;).</p>
<p>Alternativ kannst Du natürlich auch eine entsprechende union nehmen...(Wobei das eigentlich wiederum der Typsicherheit widerspricht).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358081</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 03 Sep 2007 15:47:43 GMT</pubDate></item><item><title><![CDATA[Reply to Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ? on Mon, 03 Sep 2007 16:01:13 GMT]]></title><description><![CDATA[<p>Danke für dir schnelle Antwort.</p>
<p>meinest Du, wenn ich std::map&lt;std::string, long&gt; dekl., nehmt er auch unsigned char, signed char usw. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> ? Ich werde es probieren.</p>
<p>gibt es in C++ welche Collection zum Beispiel List od. anderes( muss nicht key-value sein ), die unterchiedliche Datentypen aufnehmen kann?</p>
<p>danke und dankeschön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358090</guid><dc:creator><![CDATA[rena]]></dc:creator><pubDate>Mon, 03 Sep 2007 16:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ? on Mon, 03 Sep 2007 17:10:53 GMT]]></title><description><![CDATA[<p>Nicht direkt. Du kannst höchstens einen Datentyp wählen, in dem du all deine gewünschten Typen hineinbekommst oder du verwendest Zeiger und machst eine Liste von void*. Da gehen dir allerdings die Typinformationen verloren.<br />
Alternativ gibt es noch solche sachen wie boost::any oder boost::variant.<br />
Die Frage hier ist eher, warum brauchst du sowas? Lässt sich die Notwendigkeit einer solchen Liste durch ein besseres Design erledigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358156</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 03 Sep 2007 17:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ? on Mon, 03 Sep 2007 20:24:08 GMT]]></title><description><![CDATA[<p>In C++ gibt es garkeine <strong>Collections</strong> sondern nur <strong>Container</strong>.<br />
Der Unterschied ist mehr als nur das Wort. Eine Collections enthält selbst keine Elemente sondern nur Referenzen/Zeiger/Verweise auf Elemente. Ein Container enthält die Elemente selbst. Und so wie die Container in C++ implementiert sind können die eben nur Elemente eines Typs speichern.<br />
Der Ausweg ist sich selbst eine Art Collection zu basteln, indem man einen Container von Pointern verwendet:</p>
<pre><code class="language-cpp">struct Element
{
    virtual ~Element() {}
};

struct ElementA : Element {};
struct ElementB : Element {};

std::vector&lt;Element*&gt; v;
</code></pre>
<p>Solange die Lifetime der Objekte &quot;ausserhalb&quot; geregelt wird ist das OK.<br />
Wenn man allerdings möchte dass der Eintrag im &quot;Collection-Container&quot; die Elemente am Leben erhält bietet es sich an eine Smart-Pointer Klasse wie boost::shared_ptr zu verwenden:</p>
<pre><code class="language-cpp">struct Element
{
    virtual ~Element() {}
};

struct ElementA : Element {};
struct ElementB : Element {};

std::vector&lt;boost::shared_ptr&lt;Element&gt; &gt; v;
</code></pre>
<p>Natürlich kann man theoretisch auch ohne gemeinsame Basisklasse arbeiten (z.B. mit shared_ptr&lt;void&gt;), bloss muss man dann einen passenden Typ für jedes Elementes wissen -- dynamic_cast funktioniert ja dann nichtmehr, bleibt also nurmehr static_cast, und static_cast mit void* als Quelle funktioniert nur richtig wenn man auf genau den Typ zurückcastet von dem ursprünglich auf void* gecastet wurde.</p>
<p>---</p>
<p>Die Varianten mit union/boost::variant/boost::any sind natürlich auch OK, man muss halt immer wissen was man braucht, und dann entscheiden was in der bestimmten Situation passend ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358329</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 03 Sep 2007 20:24:08 GMT</pubDate></item><item><title><![CDATA[Reply to Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ? on Tue, 04 Sep 2007 08:13:02 GMT]]></title><description><![CDATA[<p>Danke für alle,</p>
<p>Ich werde es probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358496</guid><dc:creator><![CDATA[rena]]></dc:creator><pubDate>Tue, 04 Sep 2007 08:13:02 GMT</pubDate></item><item><title><![CDATA[Reply to Collection wie Z.B Map( key, value ) und value mit unterschiedlichen Datentypen ? on Tue, 04 Sep 2007 09:00:23 GMT]]></title><description><![CDATA[<p>rena schrieb:</p>
<blockquote>
<p>Danke für alle,</p>
<p>Ich werde es probieren.</p>
</blockquote>
<p>Hi,</p>
<p>vielleicht solltest Du auch mal erwägen, nicht zu versuchen, &quot;Java in C++ zu programmieren&quot;. C++ &quot;tickt&quot; einfach anders und dazu gehört auch das Konzept typsicherer Container....<br />
Musst Du <em>wirklich</em> in Deinen Container unterschiedlichste Sachen packen (und hinterher wieder &quot;auseinanderfriemeln&quot;) ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1358517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1358517</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 04 Sep 2007 09:00:23 GMT</pubDate></item></channel></rss>