<?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>Hallo<br />
bei folgendem Kode möchte ich die Werte von m_procedure_map auslesen:</p>
<p>typedef multimap&lt;string, ProcedureList&gt; ProcedureMap;<br />
ProcedureMap m_procedure_map;</p>
<p>m_procedure_map.insert(pair&lt;string, ProcedureList&gt;(name, procedure_list));</p>
<p>Wie? Vielen Dank<br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/318781/multimap</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 15:03:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/318781.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Jul 2013 08:43:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to multimap on Fri, 26 Jul 2013 08:43:58 GMT]]></title><description><![CDATA[<p>Hallo<br />
bei folgendem Kode möchte ich die Werte von m_procedure_map auslesen:</p>
<p>typedef multimap&lt;string, ProcedureList&gt; ProcedureMap;<br />
ProcedureMap m_procedure_map;</p>
<p>m_procedure_map.insert(pair&lt;string, ProcedureList&gt;(name, procedure_list));</p>
<p>Wie? Vielen Dank<br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341405</guid><dc:creator><![CDATA[mike4]]></dc:creator><pubDate>Fri, 26 Jul 2013 08:43:58 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Fri, 26 Jul 2013 08:53:02 GMT]]></title><description><![CDATA[<p>Wie auslesen? Alle Werte? mit begin() und end() drüber iterieren und Dir eben alles ausgeben. Oder einen bestimmten Wert? Über [] oder find(.) Einträge/Eintrag finden und ausgeben lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341409</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Fri, 26 Jul 2013 08:53:02 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Fri, 26 Jul 2013 08:54:29 GMT]]></title><description><![CDATA[<p>mike4 schrieb:</p>
<blockquote>
<p>möchte ich die Werte von m_procedure_map auslesen:</p>
<p>typedef multimap&lt;string, ProcedureList&gt; ProcedureMap;<br />
ProcedureMap m_procedure_map;</p>
<p>m_procedure_map.insert(pair&lt;string, ProcedureList&gt;(name, procedure_list));</p>
</blockquote>
<p>Schau mal hier: <a href="http://www.cplusplus.com/reference/map/multimap/begin/" rel="nofollow">http://www.cplusplus.com/reference/map/multimap/begin/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341410</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 26 Jul 2013 08:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Fri, 26 Jul 2013 10:10:44 GMT]]></title><description><![CDATA[<p>Ja das habe ich gesehe bekomme aber Fehler:</p>
<p>for (std::multimap&lt;char,int&gt;::iterator it=m_procedure_map.begin(); it!=m_procedure_map.end(); ++it)<br />
sprintf(msg, &quot;%d =&gt;%d&quot;, (*it).first, (*it).second);</p>
<p>-------</p>
<p>../FMS/IFMSDatabase.cpp:569:69: error: conversion from ‘std::multimap&lt;std::basic_string&lt;char&gt;, std::vector&lt;Procedure*&gt; &gt;::iterator {aka std::_Rb_tree_iterator&lt;std::pair&lt;const std::basic_string&lt;char&gt;, std::vector&lt;Procedure*&gt; &gt; &gt;}’ to non-scalar type ‘std::multimap&lt;char, int&gt;::iterator {aka std::_Rb_tree_iterator&lt;std::pair&lt;const char, int&gt; &gt;}’ requested<br />
../FMS/IFMSDatabase.cpp:569:96: error: no match for ‘operator!=’ in ‘it != ((IFMSDatabase*)this)-&gt;IFMSDatabase::m_procedure_map.std::multimap&lt;_Key, _Tp, _Compare, _Alloc&gt;::end&lt;std::basic_string&lt;char&gt;, std::vector&lt;Procedure*&gt;, std::less&lt;std::basic_string&lt;char&gt; &gt;, std::allocator&lt;std::pair&lt;const std::basic_string&lt;char&gt;, std::vector&lt;Procedure*&gt; &gt; &gt; &gt;()’</p>
<p>-------<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341423</guid><dc:creator><![CDATA[mike4]]></dc:creator><pubDate>Fri, 26 Jul 2013 10:10:44 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Fri, 26 Jul 2013 10:19:43 GMT]]></title><description><![CDATA[<p>Du hast oben eine map&lt;String, ProcedureList&gt;, willst aber unten über eine map&lt;char, int&gt; iterieren. Aber die Iteratoren willst du unternander mischen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341427</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 26 Jul 2013 10:19:43 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Fri, 26 Jul 2013 11:31:30 GMT]]></title><description><![CDATA[<p>Danke nun noch ein sprintf Fehler:</p>
<p>e.cpp:571:56: error: cannot pass objects of non-trivially-copyable type ‘const class std::basic_string&lt;char&gt;’ through ‘...’<br />
se.cpp:571:56: error: cannot pass objects of non-trivially-copyable type ‘class std::vector&lt;Procedure*&gt;’ through ‘...’</p>
<p>Wie sollte sprintf aussehen, damit ich das nachher als Message ausgeben kann?<br />
Nochmals vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341460</guid><dc:creator><![CDATA[mike4]]></dc:creator><pubDate>Fri, 26 Jul 2013 11:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Fri, 26 Jul 2013 12:13:02 GMT]]></title><description><![CDATA[<p>Am besten gar kein sprintf sondern nen ostringstream, da sprintf C ist.</p>
<p>Warum sprintf so nicht geht:<br />
Du versuchst std::basic_string&lt;char&gt; (std::string) an eine C Funktion zu übergeben, was nicht geht, da die C Funktion den Typ selbstverständlich nicht benutzen kann.</p>
<pre><code>sprintf(msg, &quot;%s =&gt;%s&quot;, it-&gt;first.c_str(), it-&gt;second.c_str());
</code></pre>
<p>mit c++ sähe das so aus:</p>
<pre><code>std::ostringstream msg;
msg &lt;&lt; it-&gt;first &lt;&lt; &quot; =&gt;&quot; &lt;&lt; it-&gt;second;
// string auslesen mit msg.str()
</code></pre>
<p>alle codes untegetestet</p>
<p>EDIT: Vergiss es, hab übersehen, dass nur das erste bei dir nen String ist. Dann geht die erste Variante erst recht nicht (außer du implementierst c_str(), lass es) und in der zweiten Variante müsstest du operator&lt;&lt; überladen. Was erhoffst du dir denn in der Ausgabe? Wie soll deine Ausgabe später aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341467</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Fri, 26 Jul 2013 12:13:02 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Sat, 27 Jul 2013 06:04:35 GMT]]></title><description><![CDATA[<p>Vorerst einfach mal ausgeben:</p>
<p>const char * inString);</p>
<p>später weiterverwenden.<br />
Danke</p>
<p>PS: .first klappt aber .second nicht weil es ein vector ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341616</guid><dc:creator><![CDATA[mike4]]></dc:creator><pubDate>Sat, 27 Jul 2013 06:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Sat, 27 Jul 2013 09:45:41 GMT]]></title><description><![CDATA[<p>mike4 schrieb:</p>
<blockquote>
<p>PS: .first klappt aber .second nicht weil es ein vector ist.</p>
</blockquote>
<p>Dann musst du dir überlegen was du willst. Du kannst den vector zum Beispiel so ausgeben: &quot;[element1, element2, ...]&quot;. Außer die Elemente sind wieder was was cout nicht kennt, dann musst du halt weiter zerlegen.</p>
<pre><code>ostringstream msg;
for (auto cit = m_procedure_map.cbegin(); cit != m_procedure_map.cend(); ++cit){
    msg &lt;&lt; cit-&gt;first &lt;&lt; &quot; [&quot;;
    for (auto vcit = cit-&gt;second.cbegin(); vcit != cit-&gt;second.cend(); ++vcit){
        if (vcit != cit-&gt;second.cbegin())
            msg &lt;&lt; &quot;, &quot;;
        msg &lt;&lt; *vcit; //hier muss man je nachdem was im vector steht vielleicht noch was machen
    }
    msg &lt;&lt; &quot;]\n&quot;;
}

...
//mal eben ausgeben:
cout &lt;&lt; msg.str() &lt;&lt; '\n';
//oder wenn du unbedingt C reinmischen willst
puts(msg.str().c_str());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2341633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341633</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sat, 27 Jul 2013 09:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Sat, 27 Jul 2013 12:59:44 GMT]]></title><description><![CDATA[<p>Mit:</p>
<p>cout &lt;&lt; (*it).first &lt;&lt; &quot; =&gt; &quot; &lt;&lt; (*it).second &lt;&lt; '\n';</p>
<p>bekomme ich:</p>
<p>se.cpp:572:46: error: no match for ‘operator&lt;&lt;’<br />
...</p>
<p>Warum dies?<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341657</guid><dc:creator><![CDATA[mike4]]></dc:creator><pubDate>Sat, 27 Jul 2013 12:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Sat, 27 Jul 2013 22:01:00 GMT]]></title><description><![CDATA[<p>Für deine eigenen Typen (ProcedureList) musst du den <code>operator&lt;&lt;</code> natürlich selbst überladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341720</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 27 Jul 2013 22:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Sun, 28 Jul 2013 05:41:15 GMT]]></title><description><![CDATA[<p>for (std::multimap&lt;string, ProcedureList&gt;::iterator it=m_procedure_map.begin(); it!=m_procedure_map.end(); ++it)</p>
<p>XPLMDebugString(reinterpret_cast&lt;char const*&gt;(&amp;it).second);</p>
<p>mit Fehler:<br />
error: request for member ‘second’ in ‘(const char*)(&amp; it)’, which is of non-class type ‘const char*’</p>
<p>oder:<br />
reinterpret_cast&lt;char const*&gt;(<em>it).second);<br />
mit fehler:<br />
error: invalid cast from type ‘std::pair&lt;const std::basic_string&lt;char&gt;, std::vector&lt;Procedure</em>&gt; &gt;’ to type ‘const char*’</p>
<p>Das ist ganz neu für mich. Das ist doch eine Liste von einer Liste mit vectoren?<br />
Danke für Hilfe zur Ausgabe.<br />
Gruss</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341731</guid><dc:creator><![CDATA[mike4]]></dc:creator><pubDate>Sun, 28 Jul 2013 05:41:15 GMT</pubDate></item><item><title><![CDATA[Reply to multimap on Sun, 28 Jul 2013 07:20:21 GMT]]></title><description><![CDATA[<p>reinterpret_cast ist hier sowas von komplett fehl am Platz! Das ist so als würdest du versuchen ne Reifenpanne zu reparieren indem du den Waagen mit ner Tonne TNT in die Luft sprengst.</p>
<p>Zeig mal den ganzen Ausgabecode den du hast, so bringt das nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2341741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2341741</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 28 Jul 2013 07:20:21 GMT</pubDate></item></channel></rss>