<?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 innerhalb einer std::map möglich?]]></title><description><![CDATA[<p>Hallo,<br />
ist es möglich innerhalb einer std::map eine weitere std::map zu installieren?</p>
<pre><code class="language-cpp">std::map&lt;std::string, std::string&gt; StringList;

std::map&lt;std::string, StringList&gt; MsgMap;
</code></pre>
<p>Im Prinzip hab ich einen Key nach dem ich Suchen möchte, der auch eindeutig ist; allerdings besitzt dieser Key auch ein bis fünf Subkeys.</p>
<p>z.B. Key = Tasche --&gt; Subkeys = Ledertasche, Stofftasche etc. Jeder Subkey besitzt natürlich noch einen entsprechenden Wert.</p>
<p>Vielleicht gibt es auch interessante Alternativen. Die Anzahl der Subkeys ist unterschiedlich.</p>
<pre><code>&lt;key1&gt;
    &lt;subkey1&gt;&lt;value&gt;
    &lt;subkey2&gt;&lt;value&gt;
&lt;key2&gt;
    &lt;subkey1&gt;&lt;value&gt;
    &lt;subkey2&gt;&lt;value&gt;
    &lt;subkey3&gt;&lt;value&gt;
&lt;key3&gt;
    &lt;subkey1&gt;&lt;value&gt;
</code></pre>
<p>Des Weiteren gleich noch eine zweite Frage: wenn ich nach dem Key suche, würde ich ja wenn es mit zwei std::maps geht, die &quot;innere&quot; std::map mit den Subkeys erhalten. Kann ich mich durch diese &quot;Liste&quot; entsprechend durchbewegen oder muss ich stets den richtigen Subkey aufrufen, um an den Wert zu kommen?</p>
<p>Gruß<br />
Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274572/std-map-innerhalb-einer-std-map-möglich</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 10:33:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274572.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Sep 2010 16:20:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::map innerhalb einer std::map möglich? on Tue, 28 Sep 2010 16:20:52 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ist es möglich innerhalb einer std::map eine weitere std::map zu installieren?</p>
<pre><code class="language-cpp">std::map&lt;std::string, std::string&gt; StringList;

std::map&lt;std::string, StringList&gt; MsgMap;
</code></pre>
<p>Im Prinzip hab ich einen Key nach dem ich Suchen möchte, der auch eindeutig ist; allerdings besitzt dieser Key auch ein bis fünf Subkeys.</p>
<p>z.B. Key = Tasche --&gt; Subkeys = Ledertasche, Stofftasche etc. Jeder Subkey besitzt natürlich noch einen entsprechenden Wert.</p>
<p>Vielleicht gibt es auch interessante Alternativen. Die Anzahl der Subkeys ist unterschiedlich.</p>
<pre><code>&lt;key1&gt;
    &lt;subkey1&gt;&lt;value&gt;
    &lt;subkey2&gt;&lt;value&gt;
&lt;key2&gt;
    &lt;subkey1&gt;&lt;value&gt;
    &lt;subkey2&gt;&lt;value&gt;
    &lt;subkey3&gt;&lt;value&gt;
&lt;key3&gt;
    &lt;subkey1&gt;&lt;value&gt;
</code></pre>
<p>Des Weiteren gleich noch eine zweite Frage: wenn ich nach dem Key suche, würde ich ja wenn es mit zwei std::maps geht, die &quot;innere&quot; std::map mit den Subkeys erhalten. Kann ich mich durch diese &quot;Liste&quot; entsprechend durchbewegen oder muss ich stets den richtigen Subkey aufrufen, um an den Wert zu kommen?</p>
<p>Gruß<br />
Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958630</guid><dc:creator><![CDATA[Patrick P.]]></dc:creator><pubDate>Tue, 28 Sep 2010 16:20:52 GMT</pubDate></item><item><title><![CDATA[Reply to std::map innerhalb einer std::map möglich? on Tue, 28 Sep 2010 16:40:12 GMT]]></title><description><![CDATA[<p>Ja, geht beides. Warum hast du es nicht einfach ausprobiert? - Eine map verschachteln geht genau gleich wie bei jedem anderen Typen auch und durch eine map iterieren geht auch. Das siehst du daran, dass es iteratoren dafür anbietet.</p>
<p>Siehe hier:<br />
<a href="http://www.cplusplus.com/reference/stl/map/" rel="nofollow">http://www.cplusplus.com/reference/stl/map/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958638</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 28 Sep 2010 16:40:12 GMT</pubDate></item><item><title><![CDATA[Reply to std::map innerhalb einer std::map möglich? on Tue, 28 Sep 2010 18:39:33 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Ja, geht beides. Warum hast du es nicht einfach ausprobiert? - Eine map verschachteln geht genau gleich wie bei jedem anderen Typen auch und durch eine map iterieren geht auch. Das siehst du daran, dass es iteratoren dafür anbietet.</p>
<p>Siehe hier:<br />
<a href="http://www.cplusplus.com/reference/stl/map/" rel="nofollow">http://www.cplusplus.com/reference/stl/map/</a></p>
</blockquote>
<p>Eine Frage ist dennoch geblieben - wie kann man bei einer Iteration den Endpoint setzen? So dass man eine std::map nur von A bis C durchsucht?</p>
<pre><code class="language-cpp">std::map&lt;CString, std::map&lt;CString, CString&gt;&gt;::const_iterator itr2 = XmlNodes2.find(_T(&quot;Start&quot;));  

for(itr2 = XmlNodes2.begin(); itr2 != XmlNodes2.end(); ++itr2)
{
	CString substring =  (*itr2).first; 
}
</code></pre>
<pre><code>&lt;key1&gt;
    &lt;subkey1&gt;&lt;value&gt;
    &lt;subkey2&gt;&lt;value&gt;
&lt;key2&gt;
</code></pre>
<p>In meinem Beispiel möchte ich z.B. nur die beiden Subkeys von key1 durchsuchen. Key1 entspricht dem &quot;Start&quot; von itr2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958684</guid><dc:creator><![CDATA[Patrick P.]]></dc:creator><pubDate>Tue, 28 Sep 2010 18:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to std::map innerhalb einer std::map möglich? on Tue, 28 Sep 2010 18:44:39 GMT]]></title><description><![CDATA[<p>Indem du dir einen Iterator auf dieses Element holst und dann nicht bist <code>XmlNodes2.end()</code> gehst, sondern eben bis zu diesem Iterator.</p>
<p>btw:<br />
Schau dir mal typedefs an. Die machen das ganze einiges lesbarer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958689</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 28 Sep 2010 18:44:39 GMT</pubDate></item><item><title><![CDATA[Reply to std::map innerhalb einer std::map möglich? on Tue, 28 Sep 2010 19:00:00 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Indem du dir einen Iterator auf dieses Element holst und dann nicht bist <code>XmlNodes2.end()</code> gehst, sondern eben bis zu diesem Iterator.</p>
<p>btw:<br />
Schau dir mal typedefs an. Die machen das ganze einiges lesbarer.</p>
</blockquote>
<p>Danke für den Tipp mit den Typedefs. Leider hab ich es noch nicht ganz verstanden mit der for-Schleife#</p>
<pre><code class="language-cpp">typedef std::map&lt;CString, std::map&lt;CString, CString&gt;&gt;::const_iterator iterator; 

iterator itr2 = XmlNodes2.find(_T(&quot;Start&quot;));  
iterator itr3 = XmlNodes2.find(_T(&quot;End&quot;));

for(itr2; itr2 != itr3;  ++itr2)	
{

   CString substring =  (*itr2).first; 
}
</code></pre>
<p>Auf welchen Wert muss ich itr2 in der for-Schleife zu Beginn setzen? Bis jetzt wird die for-Schleife nicht ausgeführt sondern einfach übersprungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958697</guid><dc:creator><![CDATA[Patrick P.]]></dc:creator><pubDate>Tue, 28 Sep 2010 19:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to std::map innerhalb einer std::map möglich? on Tue, 28 Sep 2010 19:33:31 GMT]]></title><description><![CDATA[<p>hat irgendwie vorher nicht funktioniert; jetzt geht es...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958714</guid><dc:creator><![CDATA[Patrick P.]]></dc:creator><pubDate>Tue, 28 Sep 2010 19:33:31 GMT</pubDate></item></channel></rss>