<?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[Parameter fuer list.uniq()]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich wuerde gerne fuer eine std::list&lt;Foo&gt; 'unique' benutzen, wobei zwei Instanzen der Klasse 'Foo' als gleich gelten sollen, wenn ein bestimmter Funktionswert kleiner als ein Parameter d ist, also in etwa</p>
<pre><code class="language-cpp">bool similarFoo (const Foo&amp; f1, const Foo&amp; f2) {
 return function(f1, f2) &lt; 3.14157;
}

// im Code
mylist.unique(similarFoo);
</code></pre>
<p>'function' koennte zum Beispiel der Abstand zwischen zwei Punkten sein.</p>
<p>Nun moechte ich, anstatt die Grenze '3.14157' fest vorzugeben, sie der Funktion similarFoo diese Grenze als Parameter uebergeben.<br />
Ich dachte, dass das irgendwie per template gehen muesste, so dass ich quasi dann</p>
<pre><code class="language-cpp">mylist.unique(similarFoo&lt;3.14157&gt;);
</code></pre>
<p>angebe. Ist das moeglich, und wenn ja, wie lautet die korrekte Syntax zur Definition und Deklaration von 'similarFoo'?</p>
<p>Ein &quot;workaround&quot; waere gewisse, in die Klasse Foo den cut-off als 'static double similar_cutoff;' mit hinzuzufuegen und diesen dan zu benutzen, doch scheint mir das unelegant, und um was Neues zu lernen, wuerde ich gerne wissen, ob es nicht doch mit so etwas wie obiger template-Version funktionieren koennte.</p>
<p>Danke fuer alle Hilfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264475/parameter-fuer-list-uniq</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 19:00:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264475.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Apr 2010 09:56:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Parameter fuer list.uniq() on Thu, 08 Apr 2010 09:56:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich wuerde gerne fuer eine std::list&lt;Foo&gt; 'unique' benutzen, wobei zwei Instanzen der Klasse 'Foo' als gleich gelten sollen, wenn ein bestimmter Funktionswert kleiner als ein Parameter d ist, also in etwa</p>
<pre><code class="language-cpp">bool similarFoo (const Foo&amp; f1, const Foo&amp; f2) {
 return function(f1, f2) &lt; 3.14157;
}

// im Code
mylist.unique(similarFoo);
</code></pre>
<p>'function' koennte zum Beispiel der Abstand zwischen zwei Punkten sein.</p>
<p>Nun moechte ich, anstatt die Grenze '3.14157' fest vorzugeben, sie der Funktion similarFoo diese Grenze als Parameter uebergeben.<br />
Ich dachte, dass das irgendwie per template gehen muesste, so dass ich quasi dann</p>
<pre><code class="language-cpp">mylist.unique(similarFoo&lt;3.14157&gt;);
</code></pre>
<p>angebe. Ist das moeglich, und wenn ja, wie lautet die korrekte Syntax zur Definition und Deklaration von 'similarFoo'?</p>
<p>Ein &quot;workaround&quot; waere gewisse, in die Klasse Foo den cut-off als 'static double similar_cutoff;' mit hinzuzufuegen und diesen dan zu benutzen, doch scheint mir das unelegant, und um was Neues zu lernen, wuerde ich gerne wissen, ob es nicht doch mit so etwas wie obiger template-Version funktionieren koennte.</p>
<p>Danke fuer alle Hilfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879206</guid><dc:creator><![CDATA[tim_g]]></dc:creator><pubDate>Thu, 08 Apr 2010 09:56:02 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter fuer list.uniq() on Thu, 08 Apr 2010 10:04:24 GMT]]></title><description><![CDATA[<p>Funktoren/Funktionsobjekte sind das Stichwort.</p>
<pre><code class="language-cpp">struct similarFoo
{
    similarFoo(float tolerance)
    : tolerance(tolerance)
    {
    }

    bool operator() (const Foo&amp; lhs, const Foo&amp; rhs) const
    {
        return function(lhs, rhs) &lt; tolerance;
    }

    float tolerance;
};
</code></pre>
<p>Anwendung:</p>
<pre><code class="language-cpp">myList.unique(similarFoo(3.1415f));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1879211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879211</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 08 Apr 2010 10:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to Parameter fuer list.uniq() on Thu, 08 Apr 2010 10:32:44 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879235</guid><dc:creator><![CDATA[tim_g]]></dc:creator><pubDate>Thu, 08 Apr 2010 10:32:44 GMT</pubDate></item></channel></rss>