<?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[Sortieren mit Bewertungsliste]]></title><description><![CDATA[<p>Also ich habe zwei getrennte Vektoren und möchte den einen sortieren und den anderen gleich mit (also sozusagen den einen so umsortieren wie dass der andere sortiert wird). Als Code kann man sich das so vorstellen:</p>
<pre><code>vector&lt;incompareable_t&gt; data;
vector&lt;int&gt; values;
sort(values.begin(), values.end());
</code></pre>
<p>Und am Ende soll data so geordnet sein wie Values umsortiert wurde. Beispiel:</p>
<pre><code>data = {a, b, c};
values = {2, 1, 3};
sort
data == {b, a, c};
</code></pre>
<p>Das soll bestenfalls generisch umsetzbar sein, da ich das an verschiedenen Stellen im Programm mit verschiedenen Typen brauche. Ebenso soll es ohne zusätzlichen Speicher auskommen, dynamischen Speicher allozieren ist langsam.</p>
<p>Meine Ideen:<br />
- Pseudo-Iterator schreiben, der einen Proxy beim Dereferenzieren zurückgibt, der sich bezüglich dem value-Vector vergleichen lässt, der aber beim Swappen die Elemente beider Vectoren swappt.<br />
- Eigenen Sortieralgorithmus implementieren und möglicherweise Performancedefizite hinnehmen.</p>
<p>Übersehe ich eine offensichtliche und gute Lösung für dieses Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326763/sortieren-mit-bewertungsliste</link><generator>RSS for Node</generator><lastBuildDate>Mon, 25 May 2026 12:32:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326763.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Jul 2014 09:01:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sortieren mit Bewertungsliste on Sun, 06 Jul 2014 09:01:10 GMT]]></title><description><![CDATA[<p>Also ich habe zwei getrennte Vektoren und möchte den einen sortieren und den anderen gleich mit (also sozusagen den einen so umsortieren wie dass der andere sortiert wird). Als Code kann man sich das so vorstellen:</p>
<pre><code>vector&lt;incompareable_t&gt; data;
vector&lt;int&gt; values;
sort(values.begin(), values.end());
</code></pre>
<p>Und am Ende soll data so geordnet sein wie Values umsortiert wurde. Beispiel:</p>
<pre><code>data = {a, b, c};
values = {2, 1, 3};
sort
data == {b, a, c};
</code></pre>
<p>Das soll bestenfalls generisch umsetzbar sein, da ich das an verschiedenen Stellen im Programm mit verschiedenen Typen brauche. Ebenso soll es ohne zusätzlichen Speicher auskommen, dynamischen Speicher allozieren ist langsam.</p>
<p>Meine Ideen:<br />
- Pseudo-Iterator schreiben, der einen Proxy beim Dereferenzieren zurückgibt, der sich bezüglich dem value-Vector vergleichen lässt, der aber beim Swappen die Elemente beider Vectoren swappt.<br />
- Eigenen Sortieralgorithmus implementieren und möglicherweise Performancedefizite hinnehmen.</p>
<p>Übersehe ich eine offensichtliche und gute Lösung für dieses Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407196</guid><dc:creator><![CDATA[Abwärtskompatibel]]></dc:creator><pubDate>Sun, 06 Jul 2014 09:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Sortieren mit Bewertungsliste on Sun, 06 Jul 2014 09:05:12 GMT]]></title><description><![CDATA[<p>Ja, es gibt eine ganz simple Lösung:</p>
<pre><code>std::vector&lt;std::pair&lt;int, incomperable_t&gt;&gt; vector;
std::sort(vector.begin(), vector.end(), [](std::pair&lt;...&gt; a, std::pair&lt;...b&gt;){return a.first &lt; b.first;});
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2407198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407198</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 06 Jul 2014 09:05:12 GMT</pubDate></item><item><title><![CDATA[Reply to Sortieren mit Bewertungsliste on Sun, 06 Jul 2014 09:12:23 GMT]]></title><description><![CDATA[<p>Da steht doch:</p>
<p>Abwärtskompatibel schrieb:</p>
<blockquote>
<p>Ebenso soll es ohne zusätzlichen Speicher auskommen, dynamischen Speicher allozieren ist langsam.</p>
</blockquote>
<p>Bei deiner Variante brauche ich den doppelten Speicher und muss erstmal alle Daten umkopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407200</guid><dc:creator><![CDATA[Abwärtskompatibel]]></dc:creator><pubDate>Sun, 06 Jul 2014 09:12:23 GMT</pubDate></item><item><title><![CDATA[Reply to Sortieren mit Bewertungsliste on Sun, 06 Jul 2014 09:14:18 GMT]]></title><description><![CDATA[<p>Eventuell könnte so ein kleines Index-Sort passen.<br />
<a href="http://www.c-plusplus.net/forum/316543-full" rel="nofollow">http://www.c-plusplus.net/forum/316543-full</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407201</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 06 Jul 2014 09:14:18 GMT</pubDate></item><item><title><![CDATA[Reply to Sortieren mit Bewertungsliste on Sun, 06 Jul 2014 09:18:07 GMT]]></title><description><![CDATA[<p>Boost.Range oder Boost.Iterator hat eventuell auch was. Ich dachte zuerst an <code>zip_iterator</code> , bin mir aber nicht sicher, ob man damit sortieren kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407202</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 06 Jul 2014 09:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to Sortieren mit Bewertungsliste on Sun, 06 Jul 2014 11:14:17 GMT]]></title><description><![CDATA[<p>Abwärtskompatibel schrieb:</p>
<blockquote>
<p>Da steht doch:</p>
<p>Abwärtskompatibel schrieb:</p>
<blockquote>
<p>Ebenso soll es ohne zusätzlichen Speicher auskommen, dynamischen Speicher allozieren ist langsam.</p>
</blockquote>
<p>Bei deiner Variante brauche ich den doppelten Speicher und muss erstmal alle Daten umkopieren.</p>
</blockquote>
<p>Ich ging davon aus, dass du die Daten die ganze Zeit so speicherst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407217</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 06 Jul 2014 11:14:17 GMT</pubDate></item></channel></rss>