<?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[STL maps vergleichen]]></title><description><![CDATA[<p>Hallo</p>
<p>ich moechte von zwei STL maps jeweils die Keys miteinander vergleichen und wenn dabei unterschiedliche sind die values dieser keys rausschmeissen aus der map. Wie mache ich das? Ich habs bisher so versucht:</p>
<pre><code class="language-cpp">for(map&lt;string,PointN&gt;::iterator mapIter = data1.begin(); mapIter != data1.end(); ++mapIter)
	{
		string szName = mapIter-&gt;first;
		map&lt;string, PointN&gt;::iterator result;
		result = find(data2.begin(), data2.end(), szName);
	}
</code></pre>
<p>Ich hole mir den ersten key aus meiner data1 und suche den key in data2.<br />
Allerdings bekomme ich da ganz viele Fehler in Hinblick auf operator==, unter anderem:</p>
<p>g:\Program Files\Microsoft Visual Studio .NET\Vc7\include\algorithm(31): error C2784: 'bool std::operator ==(const std::_Tree&lt;_Traits&gt; &amp;,const std::_Tree&lt;_Traits&gt; &amp;)' : could not deduce template argument for 'const std::_Tree&lt;_Traits&gt; &amp;' from 'std::pair&lt;_Ty1,_Ty2&gt;'<br />
with<br />
[<br />
_Ty1=const std::string,<br />
_Ty2=PointN<br />
]</p>
<p>Wie mache ich das dann? Bzw. was ist hier falsch? Oder anders: Gehe ich mein Problem ganz falsch an? Ich brauche nur die Daten die in beiden maps gleich sind und die die unterschiedlich sind muessen raus. Geht das auch anders?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140228/stl-maps-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 23:14:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140228.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Mar 2006 12:45:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL maps vergleichen on Mon, 13 Mar 2006 12:45:31 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich moechte von zwei STL maps jeweils die Keys miteinander vergleichen und wenn dabei unterschiedliche sind die values dieser keys rausschmeissen aus der map. Wie mache ich das? Ich habs bisher so versucht:</p>
<pre><code class="language-cpp">for(map&lt;string,PointN&gt;::iterator mapIter = data1.begin(); mapIter != data1.end(); ++mapIter)
	{
		string szName = mapIter-&gt;first;
		map&lt;string, PointN&gt;::iterator result;
		result = find(data2.begin(), data2.end(), szName);
	}
</code></pre>
<p>Ich hole mir den ersten key aus meiner data1 und suche den key in data2.<br />
Allerdings bekomme ich da ganz viele Fehler in Hinblick auf operator==, unter anderem:</p>
<p>g:\Program Files\Microsoft Visual Studio .NET\Vc7\include\algorithm(31): error C2784: 'bool std::operator ==(const std::_Tree&lt;_Traits&gt; &amp;,const std::_Tree&lt;_Traits&gt; &amp;)' : could not deduce template argument for 'const std::_Tree&lt;_Traits&gt; &amp;' from 'std::pair&lt;_Ty1,_Ty2&gt;'<br />
with<br />
[<br />
_Ty1=const std::string,<br />
_Ty2=PointN<br />
]</p>
<p>Wie mache ich das dann? Bzw. was ist hier falsch? Oder anders: Gehe ich mein Problem ganz falsch an? Ich brauche nur die Daten die in beiden maps gleich sind und die die unterschiedlich sind muessen raus. Geht das auch anders?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015242</guid><dc:creator><![CDATA[samo]]></dc:creator><pubDate>Mon, 13 Mar 2006 12:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to STL maps vergleichen on Mon, 13 Mar 2006 12:49:59 GMT]]></title><description><![CDATA[<p>der globale Algorithmus find() benötigt den kompletten Elementtyp der map (also ein pair&lt;string,PointN&gt; in deinem Fall) - du solltest hier besser die entsprechenden Methoden der map verwenden:</p>
<pre><code class="language-cpp">result=data2.find(szName);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1015248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015248</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 13 Mar 2006 12:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to STL maps vergleichen on Mon, 13 Mar 2006 13:13:17 GMT]]></title><description><![CDATA[<p>Danke! Das funktioniert. Leider hatte ich vergessen dass in einer map die Werte ja lexikographisch geordnet werden. Das kann ich aber nicht gebrauchen. Gibts eine Moeglichkeit das zu verhindern oder muss ich dann ein anderes Object statt der map benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015283</guid><dc:creator><![CDATA[samo]]></dc:creator><pubDate>Mon, 13 Mar 2006 13:13:17 GMT</pubDate></item><item><title><![CDATA[Reply to STL maps vergleichen on Mon, 13 Mar 2006 13:20:27 GMT]]></title><description><![CDATA[<p>Wenn dir die vorhandene Sortier-Reihenfolge nicht gefällt, solltest du dir eine eigene definieren <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="😉"
    /> (du brauchst dazu ein binäres Prädikat, das angibt wann ein string &quot;kleiner&quot; ist als ein anderer)</p>
<p>PS: Ich weiß nicht, ob es dir hilft, aber eventuell kommst du mit den set_...-Algorithmen weiter <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1015288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015288</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 13 Mar 2006 13:20:27 GMT</pubDate></item></channel></rss>