<?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::sort Comparator falsch?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein struct und einen Comparator der in std::sort aufgerufen wird:</p>
<pre><code class="language-cpp">struct RHO_IDX
{
	int		idx;
	double	rho;
};

struct RHO_Comparator
{
	bool operator()(const RHO_IDX&amp; a, const RHO_IDX&amp; b)
	{	
		if( a.rho &lt;= b.rho ) return true;
		return false;
	}
};
</code></pre>
<p>im Programm habe ich sowas:</p>
<pre><code class="language-cpp">RHO_IDX* a = new RHO_IDX[len];
//fülle a mit RHO_IDX werten.

std::sort(a, a + len; RHO_Comparator());
</code></pre>
<p>bei mir verursacht das so den folgenden error:</p>
<pre><code>*** glibc detected *** ./sp: double free or corruption (!prev): 0x08073120 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb6c797cd]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb6c7ce30]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb6e3ad11]
/usr/lib/libstdc++.so.6(_ZdaPv+0x1d)[0xb6e3ad6d]
./sp[0x804cd8e]
./sp[0x804d14b]
./sp[0x8049923]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc)[0xb6c27ebc]
./sp(__gxx_personality_v0+0x95)[0x80494f1]
//Dann folgt die memory map
</code></pre>
<p>kann mir jemand helfen? Ist der Comparator richtig? Ich wollte alle array werte nach aufsteigendem rho sortieren....</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192314/std-sort-comparator-falsch</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 12:36:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192314.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Sep 2007 19:46:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::sort Comparator falsch? on Wed, 12 Sep 2007 19:46:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein struct und einen Comparator der in std::sort aufgerufen wird:</p>
<pre><code class="language-cpp">struct RHO_IDX
{
	int		idx;
	double	rho;
};

struct RHO_Comparator
{
	bool operator()(const RHO_IDX&amp; a, const RHO_IDX&amp; b)
	{	
		if( a.rho &lt;= b.rho ) return true;
		return false;
	}
};
</code></pre>
<p>im Programm habe ich sowas:</p>
<pre><code class="language-cpp">RHO_IDX* a = new RHO_IDX[len];
//fülle a mit RHO_IDX werten.

std::sort(a, a + len; RHO_Comparator());
</code></pre>
<p>bei mir verursacht das so den folgenden error:</p>
<pre><code>*** glibc detected *** ./sp: double free or corruption (!prev): 0x08073120 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb6c797cd]
/lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb6c7ce30]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb6e3ad11]
/usr/lib/libstdc++.so.6(_ZdaPv+0x1d)[0xb6e3ad6d]
./sp[0x804cd8e]
./sp[0x804d14b]
./sp[0x8049923]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc)[0xb6c27ebc]
./sp(__gxx_personality_v0+0x95)[0x80494f1]
//Dann folgt die memory map
</code></pre>
<p>kann mir jemand helfen? Ist der Comparator richtig? Ich wollte alle array werte nach aufsteigendem rho sortieren....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1364265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1364265</guid><dc:creator><![CDATA[testo]]></dc:creator><pubDate>Wed, 12 Sep 2007 19:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to std::sort Comparator falsch? on Wed, 12 Sep 2007 20:01:03 GMT]]></title><description><![CDATA[<p>testo schrieb:</p>
<blockquote>
<p>Ist der Comparator richtig?</p>
</blockquote>
<p>nein. &lt;= ist keine Ordnungsrelation.</p>
<pre><code class="language-cpp">struct RHO_Comparator
{
    bool operator()(const RHO_IDX&amp; a, const RHO_IDX&amp; b)
    {   
        return a.rho &lt; b.rho;
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1364275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1364275</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 12 Sep 2007 20:01:03 GMT</pubDate></item><item><title><![CDATA[Reply to std::sort Comparator falsch? on Wed, 12 Sep 2007 20:06:04 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>testo schrieb:</p>
<blockquote>
<p>Ist der Comparator richtig?</p>
</blockquote>
<p>nein. &lt;= ist keine Ordnungsrelation.</p>
</blockquote>
<p>na aber hallo ist das ne ordnungsrelation. Sie ist nur nicht strikt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1364278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1364278</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Wed, 12 Sep 2007 20:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to std::sort Comparator falsch? on Wed, 12 Sep 2007 20:16:16 GMT]]></title><description><![CDATA[<p>Jester schrieb:</p>
<blockquote>
<p>na aber hallo ist das ne ordnungsrelation. Sie ist nur nicht strikt.</p>
</blockquote>
<p>wollte nur wissen, wie lange es dauert <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/1364284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1364284</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 12 Sep 2007 20:16:16 GMT</pubDate></item></channel></rss>