<?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[Vector Sortieren]]></title><description><![CDATA[<p>Hallo!</p>
<p>Scheinbar stehe ich im moment irgendwie auf der leitung.<br />
Ich habe eine Vektor den ich sortieren möchte. Hier mal der code:</p>
<pre><code class="language-cpp">// &lt; Operator der Klasse ISceneNode
std::vector&lt;ISceneNode*&gt; m_children;
bool operator &lt; (ISceneNode &amp;f) { printf(&quot;Called...&quot;); return this-&gt;m_distanceToRef &gt;= f.m_distanceToRef; };
...
std::vector&lt;ISceneNode*&gt;::iterator st = m_children.begin();
std::vector&lt;ISceneNode*&gt;::iterator ed = m_children.end();
std::sort(*st, *ed);
</code></pre>
<p>Das Problem ist, das nicht sortiert wird (also es wird nie der Text &quot;Called...&quot; ausgegeben).<br />
Ich mache etwas ähnliches mit einer anderen Klasse und dort funktioniert es problemlos.<br />
Woran könnte der Fehler liegen?<br />
Grüße,</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145740/vector-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 07:14:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145740.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 30 Apr 2006 18:34:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector Sortieren on Sun, 30 Apr 2006 18:35:46 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Scheinbar stehe ich im moment irgendwie auf der leitung.<br />
Ich habe eine Vektor den ich sortieren möchte. Hier mal der code:</p>
<pre><code class="language-cpp">// &lt; Operator der Klasse ISceneNode
std::vector&lt;ISceneNode*&gt; m_children;
bool operator &lt; (ISceneNode &amp;f) { printf(&quot;Called...&quot;); return this-&gt;m_distanceToRef &gt;= f.m_distanceToRef; };
...
std::vector&lt;ISceneNode*&gt;::iterator st = m_children.begin();
std::vector&lt;ISceneNode*&gt;::iterator ed = m_children.end();
std::sort(*st, *ed);
</code></pre>
<p>Das Problem ist, das nicht sortiert wird (also es wird nie der Text &quot;Called...&quot; ausgegeben).<br />
Ich mache etwas ähnliches mit einer anderen Klasse und dort funktioniert es problemlos.<br />
Woran könnte der Fehler liegen?<br />
Grüße,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048557</guid><dc:creator><![CDATA[pixsta]]></dc:creator><pubDate>Sun, 30 Apr 2006 18:35:46 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Sortieren on Sun, 30 Apr 2006 18:38:38 GMT]]></title><description><![CDATA[<p>Du darfst den Iterator von end() nicht dereferenzieren, das ist undefiniertes Verhalten.</p>
<p>machs so:</p>
<pre><code class="language-cpp">bool operator&lt;( ISceneNode* lhs, ISceneNode* rhs )
{
  return *lhs &lt; *rhs;
}

std::sort( st, ed );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1048561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048561</guid><dc:creator><![CDATA[Dr. Prof]]></dc:creator><pubDate>Sun, 30 Apr 2006 18:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Sortieren on Sun, 30 Apr 2006 18:43:34 GMT]]></title><description><![CDATA[<p>Du solltest vielleicht die Iteratoren nicht dereferenzieren und denn &lt;-Operator ordentlich (für den richtigen Typ und mit der richtigen Signatur) definieren. (Kriegst du das so durch den Compiler durch???)</p>
<pre><code class="language-cpp">bool operator&lt; (const ISceneNode&amp; lhs, const ISceneNode&amp; rhs)
{
    return lhs-&gt;m_distanceToRef &lt; rhs-&gt;m_distanceToRef;
}

bool operator&lt; (const ISceneNode*&amp; lhs, const ISceneNode*&amp; lhs)
{
    return *lhs &lt; *rhs;
}

// ...

std::sort (m_children.begin (), m_children.end ());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1048562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048562</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 30 Apr 2006 18:43:34 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Sortieren on Sun, 30 Apr 2006 18:52:22 GMT]]></title><description><![CDATA[<p>danke für die lösungen. funkt jetzt einwandfrei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048567</guid><dc:creator><![CDATA[pixsta]]></dc:creator><pubDate>Sun, 30 Apr 2006 18:52:22 GMT</pubDate></item></channel></rss>