<?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[Zweidimensionaler Vector einfügen]]></title><description><![CDATA[<p>Guten Tag</p>
<p>Ich habe das Problem das ich zwei zweidimensionae String-Vecoren habe und nun gern ein ganzes Paket eines Vectors in den zweiten einfügen möchte. Dachte da an sowas:</p>
<pre><code class="language-cpp">std::vector &lt;std::vector &lt;std::string&gt; &gt; String1;
std::vector &lt;std::vector &lt;std::string&gt; &gt; String2;

String1[0][0]=1;
String1[0][1]=2;
String1[0][2]=3;

String2.insert(2,String1[0].begin(),String1[0].end());
</code></pre>
<p>Mir ist natürlich klar, dass das so nicht funktioniert, ist nur für das verständniss. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Mit Eindimensionalen funktioniert das ja mit &quot;String2.insert()&quot;, aber irrgendwie funktioniert das bei mir nicht mal mit einer for-Schlaufe so richtig.</p>
<p>Hoffe ihr könnt mir helfen.</p>
<p>Frohe Festtage</p>
<p>Mathiable</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256993/zweidimensionaler-vector-einfügen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 19:49:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256993.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Dec 2009 08:13:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 08:13:26 GMT]]></title><description><![CDATA[<p>Guten Tag</p>
<p>Ich habe das Problem das ich zwei zweidimensionae String-Vecoren habe und nun gern ein ganzes Paket eines Vectors in den zweiten einfügen möchte. Dachte da an sowas:</p>
<pre><code class="language-cpp">std::vector &lt;std::vector &lt;std::string&gt; &gt; String1;
std::vector &lt;std::vector &lt;std::string&gt; &gt; String2;

String1[0][0]=1;
String1[0][1]=2;
String1[0][2]=3;

String2.insert(2,String1[0].begin(),String1[0].end());
</code></pre>
<p>Mir ist natürlich klar, dass das so nicht funktioniert, ist nur für das verständniss. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Mit Eindimensionalen funktioniert das ja mit &quot;String2.insert()&quot;, aber irrgendwie funktioniert das bei mir nicht mal mit einer for-Schlaufe so richtig.</p>
<p>Hoffe ihr könnt mir helfen.</p>
<p>Frohe Festtage</p>
<p>Mathiable</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825661</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Mon, 21 Dec 2009 08:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 08:33:16 GMT]]></title><description><![CDATA[<p>Du musst natürlich noch entsprechend Platz im vector schaffen:</p>
<pre><code class="language-cpp">std::vector&lt;std::vector&lt;std::string&gt; &gt; String1;
std::vector&lt;std::vector&lt;std::string&gt; &gt; String2;
String1.resize( 10 );
String1[0].push_back( &quot;1&quot; );
String1[0].push_back( &quot;2&quot; );
String1[0].push_back( &quot;3&quot; );
String2.insert( String2.begin(), String1.begin(), String1.end() );
</code></pre>
<p>Der Indexoperator ([]-Operator) erledigt das nicht automatisch für dich!<br />
Wieso speicherst du eigentlich integer in deinem <em>string</em>-vector?</p>
<p>In einer <em>For-Schleife</em> funktioniert das natürlich entsprechend.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825665</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 21 Dec 2009 08:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 08:53:19 GMT]]></title><description><![CDATA[<p>Wie bereits beschrieben, ist das Beispiel nur zum verstehen meiner Fragestellung gedacht. Es kommt schlussendlich Text in den String, desshalb auch der String <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Leider ist das so nich das was ich wollte, ich möchte nämlich nicht den ganzen Vector einfügen sondern nur den Abschnit [0]. Davor und dahinter sind noch Daten die nicht eingefügt werden sollen, in beiden Vecoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825672</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Mon, 21 Dec 2009 08:53:19 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 10:19:38 GMT]]></title><description><![CDATA[<p>Dann eben so:</p>
<pre><code class="language-cpp">String2.insert( String2.begin(), String1.begin(), String1.begin()+1 );
</code></pre>
<p>(Oder std::advance(), statt &quot;+1&quot;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825729</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 21 Dec 2009 10:19:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 11:23:51 GMT]]></title><description><![CDATA[<p>Schlussendlich sind es aber mehr als 10'000 Strings in dem Vector, mit an die 1000 Arrays. Ich will aber nur eine Arraygruppe einfügen, nicht den ganzen Vector. In dem Beispiel möchte ich alle Strings in string1[0] (kann auch 568 statt 0 sein) an eine beliebige stelle von string2 einfügen. In dem Beispiel in string2 [2].</p>
<p>Ich hoffe mein Standpunkt ist nun ausreichend erklärt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1825770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825770</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Mon, 21 Dec 2009 11:23:51 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 11:33:20 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Schlussendlich sind es aber mehr als 10'000 Strings in dem Vector, mit an die 1000 Arrays.</p>
</blockquote>
<p>Öha, dann ist vllt. vector auch der falsche Container! Da muss für jedes Vergrößern der ganze Vector kopiert werden. Für ein Einfügen in der Mitte müssen für jedes insert alle nachfolgenden Werte um eins Verschoben werden. Das ist ja RAM-Mord <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Wenn du eh schon auf eine Lösung mit Iteratoren abzielst solltest du auch gleich std::list verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825777</guid><dc:creator><![CDATA[maldreatura]]></dc:creator><pubDate>Mon, 21 Dec 2009 11:33:20 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 12:00:59 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Schlussendlich sind es aber mehr als 10'000 Strings in dem Vector, mit an die 1000 Arrays. Ich will aber nur eine Arraygruppe einfügen, nicht den ganzen Vector. In dem Beispiel möchte ich alle Strings in string1[0] (kann auch 568 statt 0 sein) an eine beliebige stelle von string2 einfügen. In dem Beispiel in string2 [2].</p>
<p>Ich hoffe mein Standpunkt ist nun ausreichend erklärt <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>
</blockquote>
<p>Was anderes macht der Code auch gar nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825791</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 21 Dec 2009 12:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 12:16:40 GMT]]></title><description><![CDATA[<p>maldreatura schrieb:</p>
<blockquote>
<p>Öha, dann ist vllt. vector auch der falsche Container! Da muss für jedes Vergrößern der ganze Vector kopiert werden. Für ein Einfügen in der Mitte müssen für jedes insert alle nachfolgenden Werte um eins Verschoben werden. Das ist ja RAM-Mord <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Wenn du eh schon auf eine Lösung mit Iteratoren abzielst solltest du auch gleich std::list verwenden.</p>
</blockquote>
<p>Hier ist das Problem das ich sehr viel herauslesen muss. das mach ich jetzt noch direkt. Wenn ich das bei &quot;Aufbau der STL&quot; richtig verstanden habe, ist das mit list nur mühsam möglich, deswegen habe ich den Vector genommen.</p>
<p>Dann heisst es also RAM ermorden, oder neuen Thread eröffnen und die umgekehrte Frage für std::list stellen? <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>David_pb schrieb:</p>
<blockquote>
<p>Was anderes macht der Code auch gar nicht...</p>
</blockquote>
<p>Der befehl &quot;insert&quot; verlangt aber (int, string*, string*), unterstützt aber keine zweidimensionalen String-Vectoren, so dass es für diesen Fall nicht der richtige Befehl währe, da ich mittendrin einen beliebigen zweidimensionaler Vector einfügen möchte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825798</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Mon, 21 Dec 2009 12:16:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 12:39:30 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>David_pb schrieb:</p>
<blockquote>
<p>Was anderes macht der Code auch gar nicht...</p>
</blockquote>
<p>Der befehl &quot;insert&quot; verlangt aber (int, string*, string*), unterstützt aber keine zweidimensionalen String-Vectoren, so dass es für diesen Fall nicht der richtige Befehl währe, da ich mittendrin einen beliebigen zweidimensionaler Vector einfügen möchte.</p>
</blockquote>
<p>Seit wann denn? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825811</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Mon, 21 Dec 2009 12:39:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 12:49:29 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Seit wann denn? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Das meldet er zumindes bei mir:</p>
<p>&quot;[C++ Error] Auswerten.cpp(847): E2285 Could not find a match for 'vector&lt;vector&lt;string,allocator&lt;string&gt; &gt;,allocator&lt;vector&lt;string,allocator&lt;string&gt; &gt; &gt; &gt;::insert(int,char *,char *)'&quot;</p>
<p>Ich interpretier das jedenfalls so. Spielt aber so oder so keine Rolle, da man bei Vectoren nicht mittendrin etwas einfügen kann. Ich zerstör wohl lieber den RAM, der Aufwand ist sonst zu gross...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825817</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Mon, 21 Dec 2009 12:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 12:54:49 GMT]]></title><description><![CDATA[<p>Mathiable schrieb:</p>
<blockquote>
<p>Hier ist das Problem das ich sehr viel herauslesen muss. das mach ich jetzt noch direkt. Wenn ich das bei &quot;Aufbau der STL&quot; richtig verstanden habe, ist das mit list nur mühsam möglich, deswegen habe ich den Vector genommen.</p>
</blockquote>
<p>Es kommt drauf an, ob du Random Access brauchst (über <code>operator[]</code> ). Nur zum Durchiterieren ist das nämlich nicht nötig. Ausserdem gibts ja auch noch <code>std::deque</code> .</p>
<p>Mathiable schrieb:</p>
<blockquote>
<p>Dann heisst es also RAM ermorden, oder neuen Thread eröffnen und die umgekehrte Frage für std::list stellen? <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>
</blockquote>
<p>Du darfst die Frage ruhig hier stellen. Aber sag erst mal, welche Operationen du auf dem Container genau benötigst, dann können wir eher entscheiden, was geeignet ist.</p>
<p>Mathiable schrieb:</p>
<blockquote>
<p>Der befehl &quot;insert&quot; verlangt aber (int, string*, string*), unterstützt aber keine zweidimensionalen String-Vectoren, so dass es für diesen Fall nicht der richtige Befehl währe, da ich mittendrin einen beliebigen zweidimensionaler Vector einfügen möchte.</p>
</blockquote>
<p>In C++ spricht man eigentlich nicht von Befehlen, eher von Funktionen und Anweisungen.</p>
<p>Die Memberfunktion<a href="http://www.cplusplus.com/reference/stl/vector/insert/" rel="nofollow"> <code>std::vector::insert()</code> </a>hat eine solche Überladung:</p>
<pre><code class="language-cpp">template &lt;class InputIterator&gt;
    void insert ( iterator position, InputIterator first, InputIterator last );
</code></pre>
<p>Es handelt sich also um ein Template. Damit kannst du den Typ für <code>InputIterator</code> frei wählen, sofern er das entsprechende Iterator-Konzept unterstützt. Es kann durchaus auch ein Iterator in einen verschachtelten Container sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825821</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 21 Dec 2009 12:54:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zweidimensionaler Vector einfügen on Mon, 21 Dec 2009 13:06:40 GMT]]></title><description><![CDATA[<p>Dann möge es so sein <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>Für mich ist es soweit abgeschlossen, seit ich herausgefunden habe, dass ich mit einem anderen Container gegen 200 Zeilen abändern müsste. Da ist es für mich einfacher den RAM zu ermorden <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>
<p>Ausserdem kommt das mittendrin-einfügen beim Ablauf nur einmal vor, das direkte ansteuern aber mehrere zehntausend Mal, also ist für meinen fall der Vector wohl oder übel die bessere Wahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1825829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1825829</guid><dc:creator><![CDATA[Mathiable]]></dc:creator><pubDate>Mon, 21 Dec 2009 13:06:40 GMT</pubDate></item></channel></rss>