<?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[Wieso funktioniert std::reverse() einfach so?]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Ich habe einen vector v vom typ einer von mir erstellten struct:</p>
<pre><code>struct LimitSegment {
    double s1, s2;
    boost::optional&lt;double&gt; left;   
    boost::optional&lt;double&gt; right

    LimitSegment(double as1, double as2, double aleft= -1.0, double aright= -1.0);
};

std::vector&lt;LimitSegment&gt; segments;
// segments füllen
reverse(segments.begin(), segments.end());
</code></pre>
<p>Ich fülle z.B. den vector segments mit 3 LimitSegment und der vector hat folgenden Inhalt nach dem Füllen: (111, 160), (60, 111), (0, 60). In den Klammern stehen die Werte s1 und s2 der LimitSegment struct.<br />
Nachdem nun reverse() ausgeführt wurde, hat der vector folgenden Inhalt:<br />
(0, 60), (60, 111), (111, 160).<br />
Der LimitSegment wurden genau so sortiert, wie ich es haben wollte (aufsteigend nach s1). Wie kann das sein? Woher weiß denn std::reverse(), wie ich die LimitSegment sortiert haben will? Ich habe doch nirgends einen operator&lt; definiert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328687/wieso-funktioniert-std-reverse-einfach-so</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 11:44:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328687.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Oct 2014 20:09:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wieso funktioniert std::reverse() einfach so? on Wed, 22 Oct 2014 20:09:50 GMT]]></title><description><![CDATA[<p>Guten Abend!</p>
<p>Ich habe einen vector v vom typ einer von mir erstellten struct:</p>
<pre><code>struct LimitSegment {
    double s1, s2;
    boost::optional&lt;double&gt; left;   
    boost::optional&lt;double&gt; right

    LimitSegment(double as1, double as2, double aleft= -1.0, double aright= -1.0);
};

std::vector&lt;LimitSegment&gt; segments;
// segments füllen
reverse(segments.begin(), segments.end());
</code></pre>
<p>Ich fülle z.B. den vector segments mit 3 LimitSegment und der vector hat folgenden Inhalt nach dem Füllen: (111, 160), (60, 111), (0, 60). In den Klammern stehen die Werte s1 und s2 der LimitSegment struct.<br />
Nachdem nun reverse() ausgeführt wurde, hat der vector folgenden Inhalt:<br />
(0, 60), (60, 111), (111, 160).<br />
Der LimitSegment wurden genau so sortiert, wie ich es haben wollte (aufsteigend nach s1). Wie kann das sein? Woher weiß denn std::reverse(), wie ich die LimitSegment sortiert haben will? Ich habe doch nirgends einen operator&lt; definiert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2423425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2423425</guid><dc:creator><![CDATA[Sortierer++]]></dc:creator><pubDate>Wed, 22 Oct 2014 20:09:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso funktioniert std::reverse() einfach so? on Wed, 22 Oct 2014 20:10:47 GMT]]></title><description><![CDATA[<p>reverse sortiert nicht, reverse kehrt einfach die Reihenfolge um.<br />
Das letzte Element wird das erste, das vorletzte das zweite,...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2423427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2423427</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 22 Oct 2014 20:10:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso funktioniert std::reverse() einfach so? on Wed, 22 Oct 2014 20:12:02 GMT]]></title><description><![CDATA[<p>Reverse hat doch einfach nur - wie der Name schon sagt - die Elemente so vertauscht dass sie in um gekehrter REihenfolge dastehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2423428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2423428</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Wed, 22 Oct 2014 20:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to Wieso funktioniert std::reverse() einfach so? on Wed, 22 Oct 2014 20:23:09 GMT]]></title><description><![CDATA[<p>lol, stimmt! Sorry <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2423430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2423430</guid><dc:creator><![CDATA[Sortierer++]]></dc:creator><pubDate>Wed, 22 Oct 2014 20:23:09 GMT</pubDate></item></channel></rss>