<?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[Elegante Möglichkeit Einträge Aufrücken zu lassen]]></title><description><![CDATA[<p>Ich habe einen Speicherberech fester Größe, der mit einer dynamischen Anzahl an POD-structs gefüllt ist. jetzt muss ich in der Mitte eins entfernen und die hinteren sollen aufrücken. Ich dachte gut wäre so etwas wie std::remove, das einen Iterator nimmt, aber das scheint es nicht zu geben. std::copy würde gehen, aber so richtig elegant scheint mir das nicht zu sein, da ich dann das ende des befüllten Bereiches selber ausrechnen müsste (was natürlich gehen würde). Gibt es etwas besseres?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/332558/elegante-möglichkeit-einträge-aufrücken-zu-lassen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 17:58:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/332558.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 08 May 2015 11:42:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Fri, 08 May 2015 11:42:56 GMT]]></title><description><![CDATA[<p>Ich habe einen Speicherberech fester Größe, der mit einer dynamischen Anzahl an POD-structs gefüllt ist. jetzt muss ich in der Mitte eins entfernen und die hinteren sollen aufrücken. Ich dachte gut wäre so etwas wie std::remove, das einen Iterator nimmt, aber das scheint es nicht zu geben. std::copy würde gehen, aber so richtig elegant scheint mir das nicht zu sein, da ich dann das ende des befüllten Bereiches selber ausrechnen müsste (was natürlich gehen würde). Gibt es etwas besseres?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452965</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Fri, 08 May 2015 11:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Fri, 08 May 2015 12:19:04 GMT]]></title><description><![CDATA[<p>Ein Remove, welches einen Iterator nimmt, müsste doch auch die Größe des Bereichs kennen?</p>
<p>Seit C++11 gibt es std::move (in algorithm).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452970</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 08 May 2015 12:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Fri, 08 May 2015 12:24:38 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Ein Remove, welches einen Iterator nimmt, müsste doch auch die Größe des Bereichs kennen?</p>
</blockquote>
<p>Klar, aber das muss das std::move mit einem Wert doch auch. Dazu gibt man doch zwei Iteratoren an.</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<p>Seit C++11 gibt es std::move (in algorithm).</p>
</blockquote>
<p>Das macht in diesem Fall das selbe wie std::copy.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452974</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Fri, 08 May 2015 12:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Fri, 08 May 2015 12:28:22 GMT]]></title><description><![CDATA[<p>Das Ende Deines Bereichs brauchst Du immer. Woher soll die (potentielle) Funktion das sonst wissen?</p>
<p>Wo ist das Problem bei std::move(it + 1, std::end(array), it)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452975</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 08 May 2015 12:28:22 GMT</pubDate></item><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Fri, 08 May 2015 12:45:54 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Das Ende Deines Bereichs brauchst Du immer. Woher soll die (potentielle) Funktion das sonst wissen?</p>
</blockquote>
<p>std::remove leifert den neuen &quot;Ende-Iterator&quot; zurück.</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<p>Wo ist das Problem bei std::move(it + 1, std::end(array), it)?</p>
</blockquote>
<p>Funktionieren tut das aber es ist halt etwas umständlich und es ist weniger offensichtlich, was diese Zeile macht, nämlich ein Element entfernen. Ich dachte das müsste besser gehen aber ich denke ich mache es einfach so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452979</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Fri, 08 May 2015 12:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Fri, 08 May 2015 12:52:16 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Wo ist das Problem bei std::move(it + 1, std::end(array), it)?</p>
</blockquote>
<p>Das hat übrigens ein großes Problem für den Sonder-Fall das it + 1 = std::end(array) ist. Da muss man also sogar noch ne Fallunterscheidung machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2452982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2452982</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Fri, 08 May 2015 12:52:16 GMT</pubDate></item><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Mon, 11 May 2015 05:47:05 GMT]]></title><description><![CDATA[<p>TNA schrieb:</p>
<blockquote>
<p>std::remove leifert den neuen &quot;Ende-Iterator&quot; zurück.</p>
</blockquote>
<p>Weiß ich. Aber beim Aufruf von std::remove musst Du auch den alten Ende-Iterator angeben.</p>
<p>TNA schrieb:</p>
<blockquote>
<p>Das hat übrigens ein großes Problem für den Sonder-Fall das it + 1 = std::end(array) ist. Da muss man also sogar noch ne Fallunterscheidung machen.</p>
</blockquote>
<p>Wenn it + 1 == std::end(array), werden einfach 0 Elemente an die Stelle it kopiert. Keine Fallunterscheidung nötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2453184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2453184</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 11 May 2015 05:47:05 GMT</pubDate></item><item><title><![CDATA[Reply to Elegante Möglichkeit Einträge Aufrücken zu lassen on Mon, 11 May 2015 09:20:07 GMT]]></title><description><![CDATA[<p>Wie genau findest du den Iterator auf das zu entfernende Element und wieso genau kannst du nicht einfach std::remove verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2453190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2453190</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 11 May 2015 09:20:07 GMT</pubDate></item></channel></rss>