<?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 und find aus &amp;lt;algorithm&amp;gt;]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum funktioniert folgender (Beispiel-)Code nicht?</p>
<pre><code class="language-cpp">#include &lt;map&gt;
#include &lt;utility&gt;

using namespace std;

int main( )
{
	multimap&lt;int, char&gt; m;
	typedef multimap&lt;int, char&gt;::iterator IT;
	pair&lt;IT, IT&gt; pit;
	IT i;

	m.insert( make_pair( 1, 'a' ) );
	m.insert( make_pair( 5, 'k' ) );
	m.insert( make_pair( 5, 'l' ) );

	pit = m.equal_range( 5 );

	i = find( pit.first, pit.second, make_pair( 5, 'l' ) ); //*

	m.erase( i );

	return 0;
}
</code></pre>
<p>Der Fehler tritt bei * auf und lautet: &quot;error: no match for 'operator==' in '__first. std::_Rb_tree_iterator&lt;_Tp&gt;::operator* [with _Tp = std::pair&lt;const std::string* const, unsigned int&gt;]() == __val'&quot;.<br />
Ich kann mir das nicht erklären, zumal pair ja den operator== meines Wissens nach definiert.</p>
<p>Kann mir das bitte jemand erklären?</p>
<p>Danke!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207766/multimap-und-find-aus-lt-algorithm-gt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 08:46:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207766.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Mar 2008 15:19:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:19:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>warum funktioniert folgender (Beispiel-)Code nicht?</p>
<pre><code class="language-cpp">#include &lt;map&gt;
#include &lt;utility&gt;

using namespace std;

int main( )
{
	multimap&lt;int, char&gt; m;
	typedef multimap&lt;int, char&gt;::iterator IT;
	pair&lt;IT, IT&gt; pit;
	IT i;

	m.insert( make_pair( 1, 'a' ) );
	m.insert( make_pair( 5, 'k' ) );
	m.insert( make_pair( 5, 'l' ) );

	pit = m.equal_range( 5 );

	i = find( pit.first, pit.second, make_pair( 5, 'l' ) ); //*

	m.erase( i );

	return 0;
}
</code></pre>
<p>Der Fehler tritt bei * auf und lautet: &quot;error: no match for 'operator==' in '__first. std::_Rb_tree_iterator&lt;_Tp&gt;::operator* [with _Tp = std::pair&lt;const std::string* const, unsigned int&gt;]() == __val'&quot;.<br />
Ich kann mir das nicht erklären, zumal pair ja den operator== meines Wissens nach definiert.</p>
<p>Kann mir das bitte jemand erklären?</p>
<p>Danke!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472192</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:19:43 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:21:14 GMT]]></title><description><![CDATA[<p>EDIT: oben sollte eigentlich noch ein &quot;#include &lt;algorithm&gt;&quot; in den Code, is aber irgendwie beim C&amp;P verlorengegangen, sorry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472195</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:25:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>der Fehler ist in Zeile 19.</p>
<p>Butzi<br />
Euer<br />
LordBritish<br />
IT-Titan, Blondinenflachleger und Audi A3-Fahrer (220PS!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472203</guid><dc:creator><![CDATA[LordBritish]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:25:40 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:27:36 GMT]]></title><description><![CDATA[<p>Das weiß ich (und das hab ich auch bereits geschrieben), aber WARUM ist die Zeile falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472207</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:32:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;map&gt;
#include &lt;algorithm&gt;
#include &lt;utility&gt;

using namespace std;

int main()
{
	multimap&lt;int, char&gt; m;
	typedef multimap&lt;int, char&gt;::iterator IT;
	pair&lt;int, char&gt; pit; // &lt;--
	IT i;

	m.insert( make_pair( 1, 'a' ) );
	m.insert( make_pair( 5, 'k' ) );
	m.insert( make_pair( 5, 'l' ) );

	pit = m.equal_range( 5 );

	i = find( pit.first, pit.second, make_pair( 5, 'l' ) );

	m.erase( i );

	return 0;
}
</code></pre>
<p>edit: wobei ich gerade keinen Compiler zur Hand habe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472212</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:32:06 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:35:55 GMT]]></title><description><![CDATA[<p>Dein Vorschlag ergibt keinen Sinn, weil equal_range ein pair aus zwei Iteratoren zurückliefert und nicht ein Element der (multi!)map.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472219</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:35:55 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:40:31 GMT]]></title><description><![CDATA[<p>Das Problem liegt daran, dass Du versuchtst ein std::pair&lt;int, char&gt; mit einem multimap&lt;int, char&gt;::iterator zu vergleichen und dazu ist kein == operator definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472222</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:45:02 GMT]]></title><description><![CDATA[<p>nö, das problem liegt darin, dass <code>map&lt;Key, T&gt;::value_type</code> nicht <code>pair&lt;Key T&gt;</code> , sondern <code>pair&lt;const Key, T&gt;</code> ist.</p>
<p>d.h. die lösung sieht so aus:</p>
<pre><code class="language-cpp">i = find( pit.first, pit.second, make_pair&lt;const int, char&gt;(5, 'l'));
//oder generell:
i = find( pit.first, pit.second, make_pair&lt;IT::value_type::first_type&gt;(5, 'l'));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1472228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472228</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:45:02 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:51:16 GMT]]></title><description><![CDATA[<p>Tut mir leid aber das versteh ich nicht ganz. Warum muss find das pair&lt;int, char&gt; mit pit.first (oder pit.second) vergleichen? (Oder wird der Vergleich woanders ausgeführt, wobei das nicht wirklich Sinn macht, da der Code ohne &quot;find&quot; (und natürlich erase) wunderbar funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472233</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:52:05 GMT]]></title><description><![CDATA[<p>(mein vorheriger post bezog sich auf gysi)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472237</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:52:05 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:53:04 GMT]]></title><description><![CDATA[<p>Danke, queer_boy!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472238</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 15:59:21 GMT]]></title><description><![CDATA[<p>Hm laut Fehlermeldung vergleichst du da irgendwas mit einem pair&lt;const string*, unsigned int&gt;</p>
<p>Bei deinem angegebenen Text kommt bei mir die gleiche Fehlermeldung, allerdings mit pair&lt;const int, char&gt;.</p>
<p>Auf folgende Weise hab ich das Problem beheben koennen:</p>
<pre><code class="language-cpp">pit = m.equal_range( 5 );
    pair&lt;const int,char&gt; p = make_pair( 5, 'l' ); //NEU!!!

    i = find( pit.first, pit.second, p); //*
</code></pre>
<p>Moegen die Goetter wissen, wieso der Compiler da mit dem const durcheinander kommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472242</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to multimap und find aus &amp;lt;algorithm&amp;gt; on Tue, 11 Mar 2008 16:04:18 GMT]]></title><description><![CDATA[<p>Ja, der &quot;string&quot; kommt daher, dass das verbuggte Xcode die Meldungen nicht immer aktualisiert... (ich vermisse linux)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472248</guid><dc:creator><![CDATA[volvic]]></dc:creator><pubDate>Tue, 11 Mar 2008 16:04:18 GMT</pubDate></item></channel></rss>