<?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[qsort mit Klassenmethode?]]></title><description><![CDATA[<p>Hi,</p>
<p>wie kann ich qsort() unter Verwendung einer Klassenmethode aufrufen? Die C-Deklaration verlangt einen normalen Funktionspointer auf die compare-Routine. Da allerdings ein Member meiner Class ein wichtiger Parameter für den Vergleich ist müsste ich die compare-Routine als Methode meiner Klasse definieren. Allerdings ahut mir der Compiler dann ein qsort(...,this-&gt;comparator) um die Ohren.</p>
<p>Wie gehts richtig bzw. wie muss ich da casten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171789/qsort-mit-klassenmethode</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 12:37:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171789.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 29 Jan 2007 13:10:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to qsort mit Klassenmethode? on Mon, 29 Jan 2007 13:10:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wie kann ich qsort() unter Verwendung einer Klassenmethode aufrufen? Die C-Deklaration verlangt einen normalen Funktionspointer auf die compare-Routine. Da allerdings ein Member meiner Class ein wichtiger Parameter für den Vergleich ist müsste ich die compare-Routine als Methode meiner Klasse definieren. Allerdings ahut mir der Compiler dann ein qsort(...,this-&gt;comparator) um die Ohren.</p>
<p>Wie gehts richtig bzw. wie muss ich da casten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219158</guid><dc:creator><![CDATA[Sorter]]></dc:creator><pubDate>Mon, 29 Jan 2007 13:10:54 GMT</pubDate></item><item><title><![CDATA[Reply to qsort mit Klassenmethode? on Mon, 29 Jan 2007 13:13:41 GMT]]></title><description><![CDATA[<p>Mit qsort geht das gar nicht.</p>
<p>Warum benutzt du nicht std::sort? Da kannst du ein beliebiges Funktionsobjekt angeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219159</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 29 Jan 2007 13:13:41 GMT</pubDate></item><item><title><![CDATA[Reply to qsort mit Klassenmethode? on Mon, 29 Jan 2007 13:17:34 GMT]]></title><description><![CDATA[<p>qsort() stammt noch aus C-Zeiten und hat deshalb auch keine Ahnung von Methoden. Da müsstest du eine Wrapperfunktion drumrumbauen, die sich um den Vergleich kümmert (wie du der Funktion dein this-Objekt übergeben kannst, bin ich mir nicht so sicher). In C++ hast du stattdessen sort() und ein paar Kollegen, bei denen du etwas flexibler mit der Übergabe bist. Die (imho) eleganteste Lösung wäre es da, die Vergleichsmethode als operator() zu schreiben und sort das this-Objekt mitzugeben:</p>
<pre><code class="language-cpp">class parent
{
  bool operator()(const sub&amp;l,const sub&amp;r)
  {
    //vergleiche l und r
  }

  void sort_data()
  {
    std::sort(...,*this);
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1219165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219165</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 29 Jan 2007 13:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to qsort mit Klassenmethode? on Mon, 29 Jan 2007 13:35:39 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Warum benutzt du nicht std::sort?</p>
</blockquote>
<p>Weil ich Datentypen sortieren möchte, die eben keine Objekte sind und deshalb auch den von sort() benötigten random access iterator nicht haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219186</guid><dc:creator><![CDATA[Sorter]]></dc:creator><pubDate>Mon, 29 Jan 2007 13:35:39 GMT</pubDate></item><item><title><![CDATA[Reply to qsort mit Klassenmethode? on Mon, 29 Jan 2007 13:42:18 GMT]]></title><description><![CDATA[<p>Sorter schrieb:</p>
<blockquote>
<p>Weil ich Datentypen sortieren möchte, die eben keine Objekte sind und deshalb auch den von sort() benötigten random access iterator nicht haben.</p>
</blockquote>
<p>std::sort funktioniert auch mit hundsgewöhnlichen Zeigern. Zeig doch mal, was du da hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219192</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 29 Jan 2007 13:42:18 GMT</pubDate></item></channel></rss>