<?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[multimap]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Multimap folgendermaßen angelegt:</p>
<pre><code class="language-cpp">multimap&lt;int, string&gt; Test;
</code></pre>
<p>Dort liegen jetzt lauter (int,string)-Kombis auf die ich mit einem iterator natürlich locker zugreifen kann.</p>
<p>Jetzt habe ich folgenden Code:</p>
<pre><code class="language-cpp">multimap&lt;int, string&gt;::iterator it = Test.begin();
</code></pre>
<p>Jetzt zeigt dieser Iterator it auf das erste pair.</p>
<p>Meine Fragen:</p>
<p>Ist dieses pair immer dasjenige, welches den kleinsten int-Wert hat egal in welcher Reihenfolge ich die multimap gefüllt habe?<br />
Da wir es mit einer multimap zu tun haben könnte der kleinste int-Wert ja auch mehrere strings parat haben. Welcher wäre hier der erste?</p>
<p>Die zweite Frage ist für mich nicht relevant da ich nur nach dem Iterator des kleinsten bzw größten (das wäre dann Test.end()) int-Wert suche.</p>
<p>Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306749/multimap</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 09:31:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306749.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Aug 2012 14:40:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to multimap on Mon, 06 Aug 2012 14:40:36 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Multimap folgendermaßen angelegt:</p>
<pre><code class="language-cpp">multimap&lt;int, string&gt; Test;
</code></pre>
<p>Dort liegen jetzt lauter (int,string)-Kombis auf die ich mit einem iterator natürlich locker zugreifen kann.</p>
<p>Jetzt habe ich folgenden Code:</p>
<pre><code class="language-cpp">multimap&lt;int, string&gt;::iterator it = Test.begin();
</code></pre>
<p>Jetzt zeigt dieser Iterator it auf das erste pair.</p>
<p>Meine Fragen:</p>
<p>Ist dieses pair immer dasjenige, welches den kleinsten int-Wert hat egal in welcher Reihenfolge ich die multimap gefüllt habe?<br />
Da wir es mit einer multimap zu tun haben könnte der kleinste int-Wert ja auch mehrere strings parat haben. Welcher wäre hier der erste?</p>
<p>Die zweite Frage ist für mich nicht relevant da ich nur nach dem Iterator des kleinsten bzw größten (das wäre dann Test.end()) int-Wert suche.</p>
<p>Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239342</guid><dc:creator><![CDATA[Mathias1986]]></dc:creator><pubDate>Mon, 06 Aug 2012 14:40:36 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Mon, 06 Aug 2012 15:15:31 GMT]]></title><description><![CDATA[<p>Oh falsche KAtegorie ... eigentlich sollte das natürlich ins C++ (auch C++0x und C++11) ... Kann das bitte jemand verschieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239354</guid><dc:creator><![CDATA[Mathias1986]]></dc:creator><pubDate>Mon, 06 Aug 2012 15:15:31 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Tue, 07 Aug 2012 07:00:30 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u18363" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f58" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x und C++11)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239501</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 07 Aug 2012 07:00:30 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Tue, 07 Aug 2012 07:34:10 GMT]]></title><description><![CDATA[<p>Warum lädtst Du Dir nicht den Standard runter und schaust selbst nach? Zumindest das letzte working draft gibt es hier: <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/" rel="nofollow">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/</a> (Das Dokument N3337.)Die Unterschiede zur letztendlichen Veröffentlichung sind wohl allgemein kosmetischer Natur.</p>
<p>Als Wegweiser:<br />
- Die Antwort auf die erste Frage steht in 23.2.4/2, bzw. in 23.4.5.<br />
- Zur zweiten Frage. So wie ich das lese steht die Antwort in 23.2.4/4.</p>
<p>Kannst ja mal schreiben, wie Du nach der Lektüre Deine Fragen beantworten würdest.</p>
<p>Ich hoffe Du verzeihst mir die Nichtbeantwortung und siehst den hohen pädagogischen Wert meines Postings. <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>Wenn es natürlich technische Gründe gibt, dass Du nicht selber nachgeschaut hast, bin ich mir sicher, dass das jemand für Dich tun wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239505</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Tue, 07 Aug 2012 07:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Tue, 07 Aug 2012 07:55:00 GMT]]></title><description><![CDATA[<p>Furble Wurble schrieb:</p>
<blockquote>
<p>Ich hoffe Du verzeihst mir die Nichtbeantwortung und siehst den hohen pädagogischen Wert meines Postings. <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>Nee, genau so eine Antwort wünsch ich mir, ich will es ja auch in Zukunft selber lösen.</p>
<p>Mal sehen ob ich das richtig sehe:</p>
<p><strong>Erste Frage:</strong></p>
<pre><code class="language-cpp">ordering on elements of Key.
</code></pre>
<p>Frage kann man also mit ja beantworten würde ich sagen, erster Iterator zeigt auf pair mit kleinstem int Wert.</p>
<p><strong>Zweite Frage:</strong></p>
<pre><code class="language-cpp">preserve the relative ordering of equivalent elements.
</code></pre>
<p>Hmm, ganz check ichs nicht. Mein iterator mit .begin() zeigt wohl immer noch auf ein pair mit kleinstem int Wert, aber welches ist jetzt genau das Erste? Das was länger im Container liegt?</p>
<p>Vielleicht verstehe ich aber auch alles falsch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239510</guid><dc:creator><![CDATA[Mathias1986]]></dc:creator><pubDate>Tue, 07 Aug 2012 07:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Tue, 07 Aug 2012 08:32:31 GMT]]></title><description><![CDATA[<p>Mathias1986 schrieb:</p>
<blockquote>
<p>Das was länger im Container liegt?</p>
</blockquote>
<p>Du liegst da schon ganz richtig. Ich glaube allerdings, daß die Aussage erst ab C++11 gilt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239520</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Tue, 07 Aug 2012 08:32:31 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Tue, 07 Aug 2012 08:35:59 GMT]]></title><description><![CDATA[<p>Mathias1986 schrieb:</p>
<blockquote>
<p><strong>Erste Frage:</strong></p>
<pre><code class="language-cpp">ordering on elements of Key.
</code></pre>
<p>Frage kann man also mit ja beantworten würde ich sagen, erster Iterator zeigt auf pair mit kleinstem int Wert.</p>
</blockquote>
<p>Das stimmt solange die Sortierreihenfolge Key der Größe nach aufsteigend sortiert. Das ergibt sich aus dem Compare Objekt, dass Du beim erstellen der multimap mit angeben kannst:</p>
<p>C++11 schrieb:</p>
<blockquote>
<p>23.4.5 Class template multimap</p>
<pre><code class="language-cpp">namespace std {
  template &lt;class Key, class T, class Compare = less&lt;Key&gt;,
            class Allocator = allocator&lt;pair&lt;const Key, T&gt; &gt; &gt;
  class multimap {
  //...
};
</code></pre>
</blockquote>
<p>Ich kann die Sortierreihenfolge also auch einfach umdrehen:</p>
<pre><code class="language-cpp">multimap&lt;int, string, std::greater&lt;int&gt;&gt; Test;
</code></pre>
<p>Mathias1986 schrieb:</p>
<blockquote>
<p><strong>Zweite Frage:</strong></p>
<pre><code class="language-cpp">preserve the relative ordering of equivalent elements.
</code></pre>
<p>Hmm, ganz check ichs nicht. Mein iterator mit .begin() zeigt wohl immer noch auf ein pair mit kleinstem int Wert, aber welches ist jetzt genau das Erste? Das was länger im Container liegt?</p>
</blockquote>
<p>Ich habe das bis eben genauso verstanden...allerdings hast Du mich gerade verunsichert... <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>Aber es ist tatsächlich so: die Garantie liegt in dem von Dir zitierten 23.2.4/4. und in der Tabelle 102, wo folgendes für <code>a_eq.insert(t) steht:</code></p>
<p>C++11 schrieb:</p>
<blockquote>
<p>23.2.4 Table 102<br />
<code>a_eq.insert(t)</code> <em>Effects:</em> Inserts t and returns the iterator pointing to the newly inserted element. If a range containing elements equivalent to t exists in a_eq, t is inserted at the end of that range.</p>
</blockquote>
<p>Und <strong>Caligulaminus</strong> hat recht: das steht erst seit C++11 so im Standard.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2239523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2239523</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Tue, 07 Aug 2012 08:35:59 GMT</pubDate></item></channel></rss>