<?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[Objekt in vector verschieben..]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe schon die Forensuche verwendet aber nichts entsprechendes gefunden.</p>
<p>Ich gehe durch meinen vector container und möchte das momentan bearbeitete Objekt vor das vorherige verschieben. Leider klappt meiner Vorgehensweise nicht.</p>
<p>Hier mal ein Codebeispiel wie ich es momentan versuche:</p>
<pre><code class="language-cpp">for (IndicesList::iterator i = list-&gt;begin(); i != list-&gt;end(); ++i)
{
if(x) {
int ti = *i;
i = list-&gt;erase(i);
i = list-&gt;insert(i,ti);
}
}
</code></pre>
<p>Für eine Lösung bzw. Info was ich falsch mache wäre ich dankbar.</p>
<p>Gruss<br />
Sam</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187269/objekt-in-vector-verschieben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:37:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187269.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Jul 2007 20:39:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 20:39:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe schon die Forensuche verwendet aber nichts entsprechendes gefunden.</p>
<p>Ich gehe durch meinen vector container und möchte das momentan bearbeitete Objekt vor das vorherige verschieben. Leider klappt meiner Vorgehensweise nicht.</p>
<p>Hier mal ein Codebeispiel wie ich es momentan versuche:</p>
<pre><code class="language-cpp">for (IndicesList::iterator i = list-&gt;begin(); i != list-&gt;end(); ++i)
{
if(x) {
int ti = *i;
i = list-&gt;erase(i);
i = list-&gt;insert(i,ti);
}
}
</code></pre>
<p>Für eine Lösung bzw. Info was ich falsch mache wäre ich dankbar.</p>
<p>Gruss<br />
Sam</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327440</guid><dc:creator><![CDATA[Katachi]]></dc:creator><pubDate>Tue, 17 Jul 2007 20:39:34 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 21:18:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(x) {
</code></pre>
<p>was ist x?</p>
<p>ja und so wie es aussieht, ersetzt du, und verschiebst nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327451</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Tue, 17 Jul 2007 21:18:44 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 21:27:52 GMT]]></title><description><![CDATA[<p>erase liefert einen Iterator auf das nächste Element nach dem Gelöschten. Vor diesem fügst du wieder ein, es passiert also im Grunde gar nichts. Sinnvoller dürfte aber in diesem Falle wohl swap oder splice sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327452</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 17 Jul 2007 21:27:52 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 21:33:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke erstmal. x ist einfach irgendeine Kondition. Ist aber auch erstmal irrelevant. Ich habe schon jede Kombination ausprobiert, aber ich krieg immer ne exception.</p>
<p>Der Container beinhaltet 2 elemente (können natürlich auch mehr sein, aber der Simplizitäts halber mal nur 2) und es wird beim 2 Element ersetzt, sprich der Iterator i zeigt aufs 2. Element im Container. Dieses soll nun vor das erste gesetzt werden und das bestehende Element gelöscht:</p>
<p>Vor der Operation sieht der Container folgendermaßen aus:<br />
[0,1]</p>
<p>Das Ergebnis soll [1,0] sein.</p>
<pre><code class="language-cpp">int ti = *i; //ti = 1
i = list-&gt;insert(i-1,ti); //container ist nun [1,0,1]
//der zurückgegebene Iterator i zeigt nun auf das erste Element im Container
i = list-&gt;erase(i+2); //Lösche das 3 Element
</code></pre>
<p>Das Problem hierbei ist nun, dass der zurückgegebene Iterator i nun das Element nach dem gelöschten widergibt. Das gibts aber logischerweise nicht.</p>
<p>Wie kann ich dieses Problem also lösen? Kann ich einfach</p>
<pre><code class="language-cpp">i = list-&gt;erase(i+2)-1;
</code></pre>
<p>schreiben?</p>
<p>Danke</p>
<p>Wie sollte es denn richtig gehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327453</guid><dc:creator><![CDATA[Katachi]]></dc:creator><pubDate>Tue, 17 Jul 2007 21:33:34 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 21:40:02 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>erase liefert einen Iterator auf das nächste Element nach dem Gelöschten. Vor diesem fügst du wieder ein, es passiert also im Grunde gar nichts. Sinnvoller dürfte aber in diesem Falle wohl swap oder splice sein.</p>
</blockquote>
<p>Splice gibts leider nur für den list container. Der ist aber ungünstig weil ich viel Random access habe und Performance ein Thema ist.</p>
<p>Swap, dafür bräuchte ich wieder einen 2. container, das ist aber auch nicht gerade sinnvoll, da das Alloziieren wieder Zeit kostet und der Speicherverbrauch ja dann auch steigt. Oder sehe ich das falsch? Der Container kann theoretisch mit endlich vielen Elementen besetzt sein und swap scheint nur den kompleten Kontainer zu swappen. Das ist leider nicht akzeptabel.</p>
<p>Eine lokale Lösung im Container selber wäre also die bevorzugte Lösung. Das kann doch nicht so schwer sein, ein Element mit dem vorherigen zu ersetzen oder?</p>
<p>Anybody a clue? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327454</guid><dc:creator><![CDATA[Katachi]]></dc:creator><pubDate>Tue, 17 Jul 2007 21:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 21:47:31 GMT]]></title><description><![CDATA[<p>Ich habe splice nur genannt, da nicht zu entnehmen war, welchen Container du einsetzt.</p>
<pre><code class="language-cpp">for (IndicesList::iterator i = list-&gt;begin()+1; i != list-&gt;end(); ++i)
{
    using std::swap;
    if(x)
        swap(i[-1],i[0]);
}
</code></pre>
<p>keine Umstände.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327458</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 17 Jul 2007 21:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 21:57:36 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Ich habe splice nur genannt, da nicht zu entnehmen war, welchen Container du einsetzt.</p>
<pre><code class="language-cpp">for (IndicesList::iterator i = list-&gt;begin()+1; i != list-&gt;end(); ++i)
{
    using std::swap;
    if(x)
        swap(i[-1],i[0]);
}
</code></pre>
<p>keine Umstände.</p>
</blockquote>
<p>Danke erstmal. Sorry, mein Fehler. Hätte ich wohl erwähnen sollen! Wenn ich das Beispiel so übernehme, dann krieg ich trotzdem ne Exception. Hmm, moment ich muss mal debuggen um zu schauen, was genau passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327462</guid><dc:creator><![CDATA[Katachi]]></dc:creator><pubDate>Tue, 17 Jul 2007 21:57:36 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 22:06:56 GMT]]></title><description><![CDATA[<p>hmm, der Swap scheint eigentlich einwandfrei zu funktionieren und jetzt crashts auch nicht mehr. Keine Ahnung warums beim ersten Aufruf gecrasht ist. Cool! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Scheint funktioniert zu haben. Vielen Dank also!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327464</guid><dc:creator><![CDATA[Katachi]]></dc:creator><pubDate>Tue, 17 Jul 2007 22:06:56 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 22:25:59 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> * Ist wohl doch schon spät geworden *</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1327468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327468</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 17 Jul 2007 22:25:59 GMT</pubDate></item><item><title><![CDATA[Reply to Objekt in vector verschieben.. on Tue, 17 Jul 2007 22:28:40 GMT]]></title><description><![CDATA[<p>lol <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/1327471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1327471</guid><dc:creator><![CDATA[Katachi]]></dc:creator><pubDate>Tue, 17 Jul 2007 22:28:40 GMT</pubDate></item></channel></rss>