<?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[std::map&amp;lt;string,int&amp;gt;, das größte Element finden, Funktionsobjekt]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine map und möchte das größte Element daraus finden. Dabei soll nicht der Schlüssel (string) als Kriterium gelten sondern der int-Wert. Habe mir ein Funktionsobjekt gebastelt aber bekomme eine lange template Fehlermeldung geworfen:</p>
<pre><code class="language-cpp">struct cmp_map
{
	bool operator()(const std::map&lt;string,int&gt;::iterator &amp;p1,
		        const std::map&lt;string,int&gt;::iterator &amp;p2)const
	{
		return (*p1).second &lt; (*p2).second; 
	}
};
.
.
.
std::map&lt;std::string,int&gt; map_count;	
std::max_element(map_count.begin(),map_count.end(),cmp_map());
</code></pre>
<p>Was mache ich falsch? Aus der Fehlermeldung werde ich nicht schlau.</p>
<p>mfg<br />
<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>
]]></description><link>https://www.c-plusplus.net/forum/topic/254011/std-map-lt-string-int-gt-das-größte-element-finden-funktionsobjekt</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 04:32:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254011.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Nov 2009 12:31:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::map&amp;lt;string,int&amp;gt;, das größte Element finden, Funktionsobjekt on Tue, 10 Nov 2009 12:31:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine map und möchte das größte Element daraus finden. Dabei soll nicht der Schlüssel (string) als Kriterium gelten sondern der int-Wert. Habe mir ein Funktionsobjekt gebastelt aber bekomme eine lange template Fehlermeldung geworfen:</p>
<pre><code class="language-cpp">struct cmp_map
{
	bool operator()(const std::map&lt;string,int&gt;::iterator &amp;p1,
		        const std::map&lt;string,int&gt;::iterator &amp;p2)const
	{
		return (*p1).second &lt; (*p2).second; 
	}
};
.
.
.
std::map&lt;std::string,int&gt; map_count;	
std::max_element(map_count.begin(),map_count.end(),cmp_map());
</code></pre>
<p>Was mache ich falsch? Aus der Fehlermeldung werde ich nicht schlau.</p>
<p>mfg<br />
<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>
]]></description><link>https://www.c-plusplus.net/forum/post/1805981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805981</guid><dc:creator><![CDATA[SchwarzenegerIstConan]]></dc:creator><pubDate>Tue, 10 Nov 2009 12:31:47 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;string,int&amp;gt;, das größte Element finden, Funktionsobjekt on Tue, 10 Nov 2009 12:50:20 GMT]]></title><description><![CDATA[<p>Dein Funktor ist falsch, es werden std::map&lt;&gt;::value_types verglichen, nicht Iteratoren. Also:</p>
<pre><code class="language-cpp">struct cmp_map
{
    bool operator()(const std::pair&lt;const std::string,int&gt; &amp;p1,
                    const std::pair&lt;const std::string,int&gt; &amp;p2) const
    {
        return p1.second &lt; p2.second;
    }
};
</code></pre>
<p>BTW: Auch wenn dir eine Fehlermeldung nichts sagt, ist es doch eine gute Idee, diese mit zu posten. Meist gibt es hier irgendwen, dem sie was sagt...</p>
<p>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805992</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Tue, 10 Nov 2009 12:50:20 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;string,int&amp;gt;, das größte Element finden, Funktionsobjekt on Tue, 10 Nov 2009 15:30:24 GMT]]></title><description><![CDATA[<p>Es klappt, danke <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1806088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806088</guid><dc:creator><![CDATA[SchwarzenegerIstConan]]></dc:creator><pubDate>Tue, 10 Nov 2009 15:30:24 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;string,int&amp;gt;, das größte Element finden, Funktionsobjekt on Tue, 10 Nov 2009 15:38:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct cmp_map
{
    bool operator()(const std::pair&lt;const std::string,int&gt; &amp;p1,
                    const std::pair&lt;const std::string,int&gt; &amp;p2) const
    {
        return p1.second &lt; p2.second;
    }
};
</code></pre>
<p>vs.</p>
<pre><code class="language-cpp">struct cmp_map
{
    typedef std::map&lt;std::string, int&gt; Tmap;

    bool operator()(Tmap::const_reference p1, Tmap::const_reference p2) const
    {
        return p1.second &lt; p2.second;
    }
};
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806094</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 10 Nov 2009 15:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to std::map&amp;lt;string,int&amp;gt;, das größte Element finden, Funktionsobjekt on Tue, 10 Nov 2009 17:56:33 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<pre><code class="language-cpp">struct cmp_map
{
    bool operator()(const std::pair&lt;const std::string,int&gt; &amp;p1,
                    const std::pair&lt;const std::string,int&gt; &amp;p2) const
    {
        return p1.second &lt; p2.second;
    }
};
</code></pre>
<p>vs.</p>
<pre><code class="language-cpp">struct cmp_map
{
    typedef std::map&lt;std::string, int&gt; Tmap;

    bool operator()(Tmap::const_reference p1, Tmap::const_reference p2) const
    {
        return p1.second &lt; p2.second;
    }
};
</code></pre>
<p>bb</p>
</blockquote>
<p>Würde ich auch so machen, aber ich wollte halt möglichst nahe am Beispiel bleiben <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>Stefan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806175</guid><dc:creator><![CDATA[DStefan]]></dc:creator><pubDate>Tue, 10 Nov 2009 17:56:33 GMT</pubDate></item></channel></rss>