<?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[Map mit bestimmter Schlüssel Reihenfolge]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich speichere bestimmte Daten in einer Map&lt;string,string&gt;. Die Anzalh der Schlüssel und deren Namen sind bekannt.<br />
Diese Map wird dann per XML in eine Textdatei abgelegt, soweit kein Problem.</p>
<p>Jetzt möchte ich aber, dass Elemente der Map in einer bestimmten Reihenfolge abgelegt werden (damit man die XML-Datei später besser lesen kann).</p>
<p>Wie mache ich das am besten? Wenn ich die Map mit einem Iterator auslesen, bekomme ich ja die Elemente alphabetisch nach dem Schlüssel. Ich würde aber gerne die Reihenfolge selbst bestimmen.</p>
<p>MfG, martl</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/214067/map-mit-bestimmter-schlüssel-reihenfolge</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 19:48:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/214067.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 May 2008 12:10:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 12:10:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich speichere bestimmte Daten in einer Map&lt;string,string&gt;. Die Anzalh der Schlüssel und deren Namen sind bekannt.<br />
Diese Map wird dann per XML in eine Textdatei abgelegt, soweit kein Problem.</p>
<p>Jetzt möchte ich aber, dass Elemente der Map in einer bestimmten Reihenfolge abgelegt werden (damit man die XML-Datei später besser lesen kann).</p>
<p>Wie mache ich das am besten? Wenn ich die Map mit einem Iterator auslesen, bekomme ich ja die Elemente alphabetisch nach dem Schlüssel. Ich würde aber gerne die Reihenfolge selbst bestimmen.</p>
<p>MfG, martl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516265</guid><dc:creator><![CDATA[martl]]></dc:creator><pubDate>Sun, 25 May 2008 12:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 12:20:14 GMT]]></title><description><![CDATA[<p>Maps nehmen als zusätzlichen Template-Parameter einen Functor, der für die anordnung der Elemente in der Map sorgt. Must du IMO nur einen entsprechenden überladen und mit angeben. default ist std::less IMO</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516271</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Sun, 25 May 2008 12:20:14 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 12:22:09 GMT]]></title><description><![CDATA[<p>martl schrieb:</p>
<blockquote>
<p>Wie mache ich das am besten? Wenn ich die Map mit einem Iterator auslesen, bekomme ich ja die Elemente alphabetisch nach dem Schlüssel. Ich würde aber gerne die Reihenfolge selbst bestimmen.</p>
</blockquote>
<p>Das geht nicht, die Reihenfolge ist „by design“. Die Map verwendet intern eine Rot-schwarz-Baum-Datenstruktur, die Reihenfolge der Daten ist daher durch ihren Schlüssel festgelegt.</p>
<p>Das einzige, was Du machen könntest, wäre, die Werte linear auszulesen (also als Schlüssel-Wert-Paare in einen Vektor zu kopieren) und dann nach einem von Dir gewählten Kriterium zu sortieren.</p>
<p>/EDIT: Frage falsch verstanden. Darths Lösung sollte gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516272</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 25 May 2008 12:22:09 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 12:21:31 GMT]]></title><description><![CDATA[<p>Mach doch einen <code>vector&lt;short&gt;</code> , in dem die Indexe in der von dir gewünschten Reihenfolge gespeichert sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516273</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 May 2008 12:21:31 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 12:35:07 GMT]]></title><description><![CDATA[<blockquote>
<p>Mach doch einen</p>
<pre><code>vector&lt;short&gt;
</code></pre>
</blockquote>
<p>Aber eine Map hat doch gar keine numerischen Indizes..., oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516285</guid><dc:creator><![CDATA[martl]]></dc:creator><pubDate>Sun, 25 May 2008 12:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 12:48:43 GMT]]></title><description><![CDATA[<p>martl schrieb:</p>
<blockquote>
<blockquote>
<p>Mach doch einen</p>
<pre><code>vector&lt;short&gt;
</code></pre>
</blockquote>
<p>Aber eine Map hat doch gar keine numerischen Indizes..., oder?</p>
</blockquote>
<p>Doch das ist ja gerade der Clue an std::vector.</p>
<pre><code class="language-cpp">std:vector&lt;int&gt; a;

for (int i = 0; i &lt; 100; i++)
    std::cout &lt;&lt; a[i];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1516295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516295</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 25 May 2008 12:48:43 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 13:00:19 GMT]]></title><description><![CDATA[<p>martl schrieb:</p>
<blockquote>
<blockquote>
<p>Mach doch einen</p>
<pre><code>vector&lt;short&gt;
</code></pre>
</blockquote>
<p>Aber eine <strong>Map</strong> hat doch gar keine numerischen Indizes..., oder?</p>
</blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Doch das ist ja gerade der Clue an std::vector.</p>
</blockquote>
<p>@ Drakon: Ich glaube, er meinte Map und nicht Vektor <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>
<p>Ich kenne mich selber nicht gut mit Maps aus; aber auch wenn du mit Indizes nicht direkt arbeiten kannst, kannst du ja mit Iteratoren die einzelnen Elemente durchgehen, und somit auch auf das Element an einer bestimmten Stelle zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516304</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 25 May 2008 13:00:19 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 13:05:55 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>martl schrieb:</p>
<blockquote>
<blockquote>
<p>Mach doch einen</p>
<pre><code>vector&lt;short&gt;
</code></pre>
</blockquote>
<p>Aber eine <strong>Map</strong> hat doch gar keine numerischen Indizes..., oder?</p>
</blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Doch das ist ja gerade der Clue an std::vector.</p>
</blockquote>
<p>@ Drakon: Ich glaube, er meinte Map und nicht Vektor <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>
</blockquote>
<p>Also wenn ich sein Quote anschaue und das was er schreibt, bin ich davon ausgegangen, dass er vector gemeint hat.<br />
Es geht ja _gerade darum_, dass map keine Indices hat. (Zumindest nicht, wenn man es nicht selber macht, was ich aber schwachsinnig finden würde, weil es ja genau dafür std::vector gibt.. )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516311</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 25 May 2008 13:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 13:17:58 GMT]]></title><description><![CDATA[<p>Also noch mal zur Klarstellung. Ich habe ein Map mit jeweils zwei Strings. Der Inhalt des ersten Strings wird in einer Datei durch den zweiten String ersetzt.</p>
<p>Wenn ich jetzt also noch die Reihenfolge dazu brauche, dann soll ich also jeweils den ersten String jedes Elements der Map in einen Vector schreiben und zwar in der richtigen Reihenfolge. Dann könnte ich folgendes machen:</p>
<pre><code class="language-cpp">vector&lt;string&gt; keys;
map&lt;string,string&gt; data;

// hier die initialisierung von keys und data

for(vector&lt;string&gt;::iterator iter = keys.begin(); iter != keys.end(); ++iter)
{
    cout &lt;&lt; data[*iter] &lt;&lt; endl;
}
</code></pre>
<p>Und hätte damit die Elemente der Map in der Reihenfolge in der sie der Vektor vorgibt.</p>
<p>Hat jemand noch einen besseren Vorschlag?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516318</guid><dc:creator><![CDATA[martl]]></dc:creator><pubDate>Sun, 25 May 2008 13:17:58 GMT</pubDate></item><item><title><![CDATA[Reply to Map mit bestimmter Schlüssel Reihenfolge on Sun, 25 May 2008 13:25:12 GMT]]></title><description><![CDATA[<p>Du kannst sort benutzen.</p>
<p><a href="http://www.cppreference.com/cppalgorithm/sort.html" rel="nofollow">http://www.cppreference.com/cppalgorithm/sort.html</a></p>
<p>Da kannst du (mit dem letzten Argument) eine eigene Bedingung für die Sortierung angeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1516322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1516322</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 25 May 2008 13:25:12 GMT</pubDate></item></channel></rss>