<?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[Set: Eigene Compare-Funktion]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wie der Titel schon sagt <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="🙂"
    /><br />
Ich habe ein String-Set und möchte eine eigene Compare-Funktion statt des üblichen &quot;less&lt;&gt;&quot; oder &quot;greater&lt;&gt;&quot; verwenden, nur weiß ich leider nicht, wie.<br />
Einfach:</p>
<pre><code class="language-cpp">bool comp(string &amp;s1, string &amp;s2)
{
    //.. tut halt vergleichen ..
}
// ...

set&lt;string, comp&gt; s;

// ...
</code></pre>
<p>geht nicht wirklich.<br />
Wie kann muß man solch eine Funktion definieren bzw. einbinden, damit es funktioniert ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123997/set-eigene-compare-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 19:28:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123997.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 Oct 2005 11:11:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Set: Eigene Compare-Funktion on Sat, 22 Oct 2005 11:12:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wie der Titel schon sagt <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="🙂"
    /><br />
Ich habe ein String-Set und möchte eine eigene Compare-Funktion statt des üblichen &quot;less&lt;&gt;&quot; oder &quot;greater&lt;&gt;&quot; verwenden, nur weiß ich leider nicht, wie.<br />
Einfach:</p>
<pre><code class="language-cpp">bool comp(string &amp;s1, string &amp;s2)
{
    //.. tut halt vergleichen ..
}
// ...

set&lt;string, comp&gt; s;

// ...
</code></pre>
<p>geht nicht wirklich.<br />
Wie kann muß man solch eine Funktion definieren bzw. einbinden, damit es funktioniert ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/898573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898573</guid><dc:creator><![CDATA[Postman]]></dc:creator><pubDate>Sat, 22 Oct 2005 11:12:36 GMT</pubDate></item><item><title><![CDATA[Reply to Set: Eigene Compare-Funktion on Sat, 22 Oct 2005 11:15:11 GMT]]></title><description><![CDATA[<p>mach aus dem comp einen Operator, dann kannst du ihn als Template-Parameter übergeben:</p>
<pre><code class="language-cpp">class mycomp : public binary_function&lt;bool,string,string&gt; // oder so?
{
  bool operator()(const string&amp; left,const string&amp; right)
  {
    return left.size()&lt;right.size();
  }
}

set&lt;string,mycomp&gt; myset;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/898577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898577</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 22 Oct 2005 11:15:11 GMT</pubDate></item><item><title><![CDATA[Reply to Set: Eigene Compare-Funktion on Sat, 22 Oct 2005 11:25:11 GMT]]></title><description><![CDATA[<p>es reicht:</p>
<pre><code class="language-cpp">class mycomp
{
  bool operator()(const string&amp; left,const string&amp; right) const
  {
    return left.size()&lt;right.size();
  }
}

set&lt;string,mycomp&gt; myset;
</code></pre>
<p>EDIT: const added</p>
]]></description><link>https://www.c-plusplus.net/forum/post/898589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898589</guid><dc:creator><![CDATA[niemand]]></dc:creator><pubDate>Sat, 22 Oct 2005 11:25:11 GMT</pubDate></item><item><title><![CDATA[Reply to Set: Eigene Compare-Funktion on Sat, 22 Oct 2005 13:17:06 GMT]]></title><description><![CDATA[<p>Funktioniert bestens. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/898682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898682</guid><dc:creator><![CDATA[Postman]]></dc:creator><pubDate>Sat, 22 Oct 2005 13:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to Set: Eigene Compare-Funktion on Sun, 23 Oct 2005 09:45:28 GMT]]></title><description><![CDATA[<p>Hallo,<br />
es geht natürlich auch mit einer Funktion:</p>
<pre><code class="language-cpp">bool comp(const std::string&amp; s1, const std::string&amp; s2) {...}

// der zweite Parameter ist ein *Typ*...
typedef std::set&lt;std::string, bool (*)(const std::string&amp;, const std::string&amp;)&gt; StrSet;

// ... der bei der Instanstziierung mit einem Wert belegt werden muss.
// Verwendet man einen Funktionstyp, muss man im Ctor die konkrete Funktion angeben.
StrSet s(comp);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/899156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/899156</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sun, 23 Oct 2005 09:45:28 GMT</pubDate></item></channel></rss>