<?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[Duplikate entfernen, operator &amp;lt; überladen]]></title><description><![CDATA[<p>Ich will mit folgendem Code Duplikate entfernen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
    void removeDuplicates(std::vector&lt;T&gt;&amp; vec)
    {
        std::sort(vec.begin(), vec.end());
        vec.erase(std::unique(vec.begin(), vec.end()), vec.end());
    }
</code></pre>
<p>Wie muss ich dafür meine Klasse, die einen double[3] kapselt, den Operator &lt; (odr &lt;=?) überladen, damit die lexikographische Ordnung genommen wird?=</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265498/duplikate-entfernen-operator-lt-überladen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 00:34:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265498.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Apr 2010 09:45:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 09:45:58 GMT]]></title><description><![CDATA[<p>Ich will mit folgendem Code Duplikate entfernen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
    void removeDuplicates(std::vector&lt;T&gt;&amp; vec)
    {
        std::sort(vec.begin(), vec.end());
        vec.erase(std::unique(vec.begin(), vec.end()), vec.end());
    }
</code></pre>
<p>Wie muss ich dafür meine Klasse, die einen double[3] kapselt, den Operator &lt; (odr &lt;=?) überladen, damit die lexikographische Ordnung genommen wird?=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887573</guid><dc:creator><![CDATA[sdffds]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:45:58 GMT</pubDate></item><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 09:55:18 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/algorithm/unique/" rel="nofollow">RTFM</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887582</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 10:00:41 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p><a href="http://www.cplusplus.com/reference/algorithm/unique/" rel="nofollow">RTFM</a></p>
</blockquote>
<p>Sorry, ich dachte, es ging um das, was std::unique braucht, um Duplikate rauszuschmeißen. std::sort wäre mit einem entsprechenden operator&lt; zufrieden.</p>
<p>Du gehst einfach der Reihe nach vom ersten bis zum letzten Element und vergleichst die so lange, bis eines größer oder kleiner ist.</p>
<p>ungetesteter Pseudocode</p>
<pre><code class="language-cpp">bool operator&lt;(dings const&amp; a, dings const&amp; b)
{
  for (int k=0; k&lt;3; ++k) {
    if (a.array[k] != b.array[k])
      return a.array[k] &lt; b.array[k];
  }
  return false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1887583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887583</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 24 Apr 2010 10:00:41 GMT</pubDate></item><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 10:04:32 GMT]]></title><description><![CDATA[<p>Aber das gibt's auch schon fertig:<br />
<a href="http://www.cplusplus.com/reference/algorithm/lexicographical_compare/" rel="nofollow">http://www.cplusplus.com/reference/algorithm/lexicographical_compare/</a></p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;functional&gt;

...

struct my_order : std::binary_function&lt;dings,dings,bool&gt;
{
  bool operator()(dings const&amp; a, dings const&amp; b) const
  {
    return std::lexicographical_compare(
      a.array,a.array+3,
      b.array,b.array+3 );
  }
}
</code></pre>
<p>(ungetestet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887586</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 24 Apr 2010 10:04:32 GMT</pubDate></item><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 10:25:44 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>krümelkacker schrieb:</p>
<blockquote>
<p><a href="http://www.cplusplus.com/reference/algorithm/unique/" rel="nofollow">RTFM</a></p>
</blockquote>
<p>Sorry, ich dachte, es ging um das, was std::unique braucht, um Duplikate rauszuschmeißen. std::sort wäre mit einem entsprechenden operator&lt; zufrieden.</p>
<p>Du gehst einfach der Reihe nach vom ersten bis zum letzten Element und vergleichst die so lange, bis eines größer oder kleiner ist.</p>
<p>ungetesteter Pseudocode</p>
<pre><code class="language-cpp">bool operator&lt;(dings const&amp; a, dings const&amp; b)
{
  for (int k=0; k&lt;3; ++k) {
    if (a.array[k] != b.array[k])
      return a.array[k] &lt; b.array[k];
  }
  return false;
}
</code></pre>
</blockquote>
<p>Danke, aber da kommt die Meldung</p>
<p>Fehler 1 error C2804: Binärer Operator '&lt;' hat zu viele Parameter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887598</guid><dc:creator><![CDATA[sdfsdf]]></dc:creator><pubDate>Sat, 24 Apr 2010 10:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 10:29:20 GMT]]></title><description><![CDATA[<p>sdfsdf schrieb:</p>
<blockquote>
<p>Danke, aber da kommt die Meldung<br />
Fehler 1 error C2804: Binärer Operator '&lt;' hat zu viele Parameter</p>
</blockquote>
<p>Das hast Du das, was als freie Funktion gedacht war, wahrscheinlich als Elementfunktion (&quot;Methode&quot;) benutzen wollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887600</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 24 Apr 2010 10:29:20 GMT</pubDate></item><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 10:31:02 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>sdfsdf schrieb:</p>
<blockquote>
<p>Danke, aber da kommt die Meldung<br />
Fehler 1 error C2804: Binärer Operator '&lt;' hat zu viele Parameter</p>
</blockquote>
<p>Das hast Du das, was als freie Funktion gedacht war, wahrscheinlich als Elementfunktion (&quot;Methode&quot;) benutzen wollen.</p>
</blockquote>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887601</guid><dc:creator><![CDATA[ssdfdsf]]></dc:creator><pubDate>Sat, 24 Apr 2010 10:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to Duplikate entfernen, operator &amp;lt; überladen on Sat, 24 Apr 2010 11:11:37 GMT]]></title><description><![CDATA[<p>ssdfdsf schrieb:</p>
<blockquote>
<p>krümelkacker schrieb:</p>
<blockquote>
<p>Das hast Du das, was als freie Funktion gedacht war, wahrscheinlich als Elementfunktion (&quot;Methode&quot;) benutzen wollen.</p>
</blockquote>
<p>Danke!</p>
</blockquote>
<p>Siehe dazu auch den entsprechenden Artikel im Magazin <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/1887622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887622</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 24 Apr 2010 11:11:37 GMT</pubDate></item></channel></rss>