<?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[derbe Fehlermeldung bei Verwendung von std::sort()]]></title><description><![CDATA[<p>Hi!<br />
Ich habe mir eine Klasse CCornerVal gemacht, die eine Ecke in einem Bild repräsentieren soll:</p>
<pre><code class="language-cpp">class CCornerVal
{
public:
    int x;
    int y;
    double m_strength;  //Lambda-Wert

    cornerVal() {x = 0; y = 0; m_strength = 0; isClear = false;}
    CCornerVal(const CCornerVal &amp;a) {x = a.x; y = a.y; m_strength = a.m_strength; isClear = a.isClear;}
    bool operator&lt; (cornerVal &amp;a) { return (m_strength &lt; a.m_strength); }
};
</code></pre>
<p>In meinem Programm habe ich jetzt einen vector mit verschiedenen Einträgen von eben diesen Ecken:</p>
<pre><code class="language-cpp">//...
std::vector&lt;CCornerVal&gt; foundCorners;
//...
tempCorner.x = x;
tempCorner.y = y;
tempCorner.m_strength = lambda2;
foundCorners.push_back(tempCorner);
</code></pre>
<p>Diesen vector will ich jetzt sortieren, und zwar mit std::sort(). Also:</p>
<pre><code class="language-cpp">std::sort(foundCorners.begin(), foundCorners.end());
</code></pre>
<p>Sobald ich entsprechende &quot;sort-Zeile&quot; aber in meinen Programmcode aufnehme, haut mir mein Compiler (ich benutze Dev-C++ 4.9.9.2, k.A. was für einen Compiler das nutzt) aber diese wüste Fehlermeldung um die Ohren und der Editor deutet dabei auf Code aus der stl_algo.h:</p>
<pre><code class="language-cpp">C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h: In function `const _Tp&amp; std::__median(const _Tp&amp;, const _Tp&amp;, const _Tp&amp;) [with _Tp = cornerVal]':
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:2484:   instantiated from `void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;cornerVal*, std::vector&lt;cornerVal, std::allocator&lt;cornerVal&gt; &gt; &gt;, _Size = int]'
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:2555:   instantiated from `void std::sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;cornerVal*, std::vector&lt;cornerVal, std::allocator&lt;cornerVal&gt; &gt; &gt;]'
klt-corner.cpp:192:   instantiated from here
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:90: error: no match for 'operator&lt;' in '__a &lt; __b'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:91: error: no match for 'operator&lt;' in '__b &lt; __c'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)

C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:93: error: no match for 'operator&lt;' in '__a &lt; __c'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:97: error: no match for 'operator&lt;' in '__a &lt; __c'

plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:99: error: no match for 'operator&lt;' in '__b &lt; __c'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)

make.exe: *** [klt-corner.o] Error 1

Ausführung beendet
</code></pre>
<p>Bin mit meinem Latein am Ende, aber von euch weiß sicherlich wer eine Lösung..</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/133801/derbe-fehlermeldung-bei-verwendung-von-std-sort</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 02:22:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133801.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Jan 2006 21:51:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 21:51:11 GMT]]></title><description><![CDATA[<p>Hi!<br />
Ich habe mir eine Klasse CCornerVal gemacht, die eine Ecke in einem Bild repräsentieren soll:</p>
<pre><code class="language-cpp">class CCornerVal
{
public:
    int x;
    int y;
    double m_strength;  //Lambda-Wert

    cornerVal() {x = 0; y = 0; m_strength = 0; isClear = false;}
    CCornerVal(const CCornerVal &amp;a) {x = a.x; y = a.y; m_strength = a.m_strength; isClear = a.isClear;}
    bool operator&lt; (cornerVal &amp;a) { return (m_strength &lt; a.m_strength); }
};
</code></pre>
<p>In meinem Programm habe ich jetzt einen vector mit verschiedenen Einträgen von eben diesen Ecken:</p>
<pre><code class="language-cpp">//...
std::vector&lt;CCornerVal&gt; foundCorners;
//...
tempCorner.x = x;
tempCorner.y = y;
tempCorner.m_strength = lambda2;
foundCorners.push_back(tempCorner);
</code></pre>
<p>Diesen vector will ich jetzt sortieren, und zwar mit std::sort(). Also:</p>
<pre><code class="language-cpp">std::sort(foundCorners.begin(), foundCorners.end());
</code></pre>
<p>Sobald ich entsprechende &quot;sort-Zeile&quot; aber in meinen Programmcode aufnehme, haut mir mein Compiler (ich benutze Dev-C++ 4.9.9.2, k.A. was für einen Compiler das nutzt) aber diese wüste Fehlermeldung um die Ohren und der Editor deutet dabei auf Code aus der stl_algo.h:</p>
<pre><code class="language-cpp">C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h: In function `const _Tp&amp; std::__median(const _Tp&amp;, const _Tp&amp;, const _Tp&amp;) [with _Tp = cornerVal]':
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:2484:   instantiated from `void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;cornerVal*, std::vector&lt;cornerVal, std::allocator&lt;cornerVal&gt; &gt; &gt;, _Size = int]'
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:2555:   instantiated from `void std::sort(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;cornerVal*, std::vector&lt;cornerVal, std::allocator&lt;cornerVal&gt; &gt; &gt;]'
klt-corner.cpp:192:   instantiated from here
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:90: error: no match for 'operator&lt;' in '__a &lt; __b'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:91: error: no match for 'operator&lt;' in '__b &lt; __c'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)

C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:93: error: no match for 'operator&lt;' in '__a &lt; __c'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:97: error: no match for 'operator&lt;' in '__a &lt; __c'

plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)
C:/Programme/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:99: error: no match for 'operator&lt;' in '__b &lt; __c'
plugin-pool/my_corners.h:15: note: candidates are: bool cornerVal::operator&lt;(cornerVal&amp;)

make.exe: *** [klt-corner.o] Error 1

Ausführung beendet
</code></pre>
<p>Bin mit meinem Latein am Ende, aber von euch weiß sicherlich wer eine Lösung..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971755</guid><dc:creator><![CDATA[Fellar]]></dc:creator><pubDate>Fri, 20 Jan 2006 21:51:11 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:22:32 GMT]]></title><description><![CDATA[<p>Edit: Unsinn geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Funktioniert es, wenn du den Operator mit den passenden consts versiehst?</p>
<pre><code class="language-cpp">bool operator&lt; (const cornerVal &amp;a) const
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/971765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971765</guid><dc:creator><![CDATA[masterofx32]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:22:32 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:54:04 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
<p>Ja, das tut es! Könntst Du mir kurz erklären, wofür ich das ertse 'const' brauche und was das zweite 'const' hinter dem Funktionskopf tut (ist mir gar nicht geläufig von der Syntax her..), nur damit ich in Zukunft Bescheid weiß.</p>
<p>Edit kurz danach:<br />
Hey, das hat gar nicht an den 'const' gelegen. Hab gleichzeitig nämlich noch was anderes geändert:</p>
<pre><code class="language-cpp">CCornerVal(const CCornerVal &amp;a)
    { this-&gt;x = a.x; this-&gt;y = a.y; this-&gt;m_strength = a.m_strength; this-&gt;isClear = a.isClear; }

    bool operator&lt;(CCornerVal &amp;a)
    { return (this-&gt;m_strength &lt; a.m_strength); }
</code></pre>
<p>Jetzt steht vor jedem Zugriff auf Membervariablen das this-&gt;.<br />
Merke: sollte ich mir angewöhnen!</p>
<p>Edit weitere 30 min später:<br />
Hm, grade hat er kompiliert und ausgeführt ohne die const, jetzt hab ich was Minimales geändert und er kompiliert mir wieder nur mit const. Versteh ich zwar net, aber auch egal, solange er überhaupt kompiliert...</p>
<p>Grüße<br />
FellaR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971775</guid><dc:creator><![CDATA[Fellar]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:54:04 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:29:45 GMT]]></title><description><![CDATA[<p>Das erste const vor dem Argument gibt an, dass die zu vergleichende CCornerVal-Referenz a nicht veränderbar ist und das const am Ende gibt an, dass diese Funktion an der eigenen Klasse nichts verändert und auch nicht verändern kann (der this-Pointer (ob du ihn schreibst oder nicht) ist also innerhalb der Operator-Methode ebenfalls const.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971781</guid><dc:creator><![CDATA[masterofx32]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:31:05 GMT]]></title><description><![CDATA[<p>Was ist cornerVal()?? Wenn ich deinen Code kompiliere bekomme ich:</p>
<pre><code>10 C:\Dev-Cpp\main7.cpp ISO C++ forbids declaration of `cornerVal' with no type
</code></pre>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971784</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:35:39 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6950">@joomoo</a>: cornerVal sollte eigentlich CCornerVal heißen, hab zuerst gepostet, dann ist mir eingefallen, dass man Klassen ja immer groß schreibt und mit C beginnt. Da ich auf Belehrungen wie &quot;eigne Dir doch erst mal die Konventionen an, du n00b&quot; verzichten wollte, hab ich dann das cornerVal zu CCornerVal gemacht und einen Eintrag vergessen abzuändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971790</guid><dc:creator><![CDATA[Fellar]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:35:39 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:45:54 GMT]]></title><description><![CDATA[<p>Fellar schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6950">@joomoo</a>: cornerVal sollte eigentlich CCornerVal heißen, hab zuerst gepostet, dann ist mir eingefallen, dass man Klassen ja immer groß schreibt und mit C beginnt. Da ich auf Belehrungen wie &quot;eigne Dir doch erst mal die Konventionen an, du n00b&quot; verzichten wollte, hab ich dann das cornerVal zu CCornerVal gemacht und einen Eintrag vergessen abzuändern.</p>
</blockquote>
<p>BTW: Das mit dem C beginnen ist nicht pflicht, das sieht jeder anders. Siehe <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-41464.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-41464.html</a></p>
<p>Also ich habe es jetzt abgeändert und bekomme die Fehlermeldung:</p>
<pre><code>10 C:\Dev-Cpp\main7.cpp `isClear' undeclared (first use this function)
</code></pre>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971796</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:51:50 GMT]]></title><description><![CDATA[<p>joomoo schrieb:</p>
<blockquote>
<p>Also ich habe es jetzt abgeändert und bekomme die Fehlermeldung:</p>
<pre><code>10 C:\Dev-Cpp\main7.cpp `isClear' undeclared (first use this function)
</code></pre>
<p>mfg.</p>
</blockquote>
<p>Oh mann, da hab ich wohl ziemlichen Mischmasch gepostet. isClear ist ein Member, dessen Deklaration ich aber in dem Post hier entfernt habe, da er keinen wichtigen Beitrag zu meinem Problem leistet. Im Konstruktor natürlich vergessen. Aber eh egal, das Problem is ja gelöst. Danke dass Du dir die Mühe gemacht hast.</p>
<p>Grüße<br />
FellaR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971800</guid><dc:creator><![CDATA[Fellar]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:51:50 GMT</pubDate></item><item><title><![CDATA[Reply to derbe Fehlermeldung bei Verwendung von std::sort() on Fri, 20 Jan 2006 22:56:32 GMT]]></title><description><![CDATA[<p>Fellar schrieb:</p>
<blockquote>
<p>Aber eh egal, das Problem is ja gelöst.</p>
</blockquote>
<p>Da hab ich erstmal huch gemacht, und dann sind mir die zwei Beiträge von masterofx32 aufgefallen, hatte ich echt übersehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/971804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/971804</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Fri, 20 Jan 2006 22:56:32 GMT</pubDate></item></channel></rss>