<?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[Problem mit vector push_back]]></title><description><![CDATA[<p>Hallo,</p>
<p>mein Problem ist folgendes:</p>
<p>Ich habe eine Datei mit zwei Spalten und Leerzeilen zwischen den jeweiligen Datensaetzen in etwa wie:</p>
<pre><code>1 x
2 y
3 z

1 p
2 r
3 s

[latex]\vdots \quad\vdots [/latex]
</code></pre>
<p>Ich moechte es in die Form bringen:</p>
<pre><code>1 x p ...
2 y r ...
3 z s ...
</code></pre>
<p>Die Werte sind in einem zweidimensionalen vector gespeichert. Mein erster Ansatz war mittels push_back einfach die gewollten Elemente hinten an jedes Element des Zielvektors einzufuegen. Das ging gruendlich schief. Deshalb nun meine Frage:</p>
<p>Hat jemand eine Idee, wie ich mein Vorhaben umsetzen koennte?</p>
<p>Vielen vielen Dank fuer Eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210467/problem-mit-vector-push_back</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 13:38:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210467.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Apr 2008 10:30:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 10:30:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>mein Problem ist folgendes:</p>
<p>Ich habe eine Datei mit zwei Spalten und Leerzeilen zwischen den jeweiligen Datensaetzen in etwa wie:</p>
<pre><code>1 x
2 y
3 z

1 p
2 r
3 s

[latex]\vdots \quad\vdots [/latex]
</code></pre>
<p>Ich moechte es in die Form bringen:</p>
<pre><code>1 x p ...
2 y r ...
3 z s ...
</code></pre>
<p>Die Werte sind in einem zweidimensionalen vector gespeichert. Mein erster Ansatz war mittels push_back einfach die gewollten Elemente hinten an jedes Element des Zielvektors einzufuegen. Das ging gruendlich schief. Deshalb nun meine Frage:</p>
<p>Hat jemand eine Idee, wie ich mein Vorhaben umsetzen koennte?</p>
<p>Vielen vielen Dank fuer Eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490237</guid><dc:creator><![CDATA[Borninger]]></dc:creator><pubDate>Fri, 11 Apr 2008 10:30:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 10:46:57 GMT]]></title><description><![CDATA[<p>Benutz ein map&lt;string, vector&lt;char&gt; &gt;<br />
key ist Deine 1. Spalte (1, 2, 3 etc.), und die Werte (Buchstaben) packst Du als Wert in den entsprechenden vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490244</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 11 Apr 2008 10:46:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 11:11:49 GMT]]></title><description><![CDATA[<p>Danke fuer Deine Antwort. Wie genau meinst Du das? Habe noch nie mit C++ maps gearbeitet und was ich versucht habe, mag der Compiler nich:</p>
<pre><code class="language-cpp">for(i = 1; i &lt;= NKPOINTS; i++){
    map&lt;i,dat_res[i-1]&gt;;
  }
</code></pre>
<p>Wie greife ich mit Maps eigentlich auf den vector zu, in dem ich die Daten gespeichert habe?</p>
<p>Kommt key anstelle von string in map&lt;string, vector&lt;char&gt; &gt; ? Kannst Du mir ne gute Referenz empfehlen, wo ich auch Beispiele finde? Denn, wie Du sicherlich gemerkt hast: Ich habe keine Ahnung.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490263</guid><dc:creator><![CDATA[Borninger]]></dc:creator><pubDate>Fri, 11 Apr 2008 11:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 12:04:02 GMT]]></title><description><![CDATA[<p>Gute Referenz gibt es hier:<br />
<a href="http://www.cppreference.com/" rel="nofollow">http://www.cppreference.com/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490288</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 11 Apr 2008 12:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 12:07:30 GMT]]></title><description><![CDATA[<p>und schau mal auf diese Seite der Thread von grizzel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490291</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 11 Apr 2008 12:07:30 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 12:11:50 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1387">@Braunstein</a>: auf welche Seite?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490294</guid><dc:creator><![CDATA[Borninger]]></dc:creator><pubDate>Fri, 11 Apr 2008 12:11:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 12:13:03 GMT]]></title><description><![CDATA[<p>lies mal genau;)</p>
<p>auf DIESER seite den thread : <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-210460.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-210460.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490295</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Fri, 11 Apr 2008 12:13:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 12:19:51 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>: Danke, mal schauen, ob es mir weiterhilft</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490301</guid><dc:creator><![CDATA[Borninger]]></dc:creator><pubDate>Fri, 11 Apr 2008 12:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector push_back on Fri, 11 Apr 2008 14:42:32 GMT]]></title><description><![CDATA[<p>Hallo Borninger,</p>
<p>wenn tatsächlich immer nur 1,2,3 in der ersten Spalte steht, so benötigst Du keine map, sondern kannst die Tabelle auch in ein Array von drei vectoren einlesen. Baue Dir dazu am besten eine Struktur, die einer Einheit aus zwei Spalten entspricht. Da 1,2,3 vorne immer gleich ist, braucht man sich nur die drei Texte zu merken - ich nehme mal an, es sind Texte und nicht nur einzelne Zeichen. Der folgende Code funktioniert aber auch mit einzelnen Zeichen.</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;vector&gt;  // brauchen wir später für 'alles'
#include &lt;fstream&gt; // ifstream, ofstream
#include &lt;algorithm&gt; // copy
#include &lt;iterator&gt; // ostream_iterator

struct Tupel
{
    enum { size = 3 };
    std::string m_txt[size]; // die 2.Spalte mit 'size' Zeilen
};

// --   list:
//  1 Text
//  2 mehr-Text
//  3 noch-mehr-Text
//  .. usw. bis Tupel::size
std::istream&amp; operator&gt;&gt;( std::istream&amp; in, Tupel&amp; tp )
{
    int nr;
    for( int idx = 0; idx &lt; Tupel::size &amp;&amp; in &gt;&gt; nr &gt;&gt; tp.m_txt[idx]; ++idx  )
        if( nr != idx + 1 )
            in.setstate( std::ios_base::failbit );
    return in;
}
</code></pre>
<p>So ein Tupel liest genau einmal drei Zeilen mit 1,2,3 und zwei Spalten ein.</p>
<p>Für die ganze Tabelle deren Spaltenanzahl beliebig sein kann, reicht dann ein (bzw. ein Array von 3) vector'en.</p>
<pre><code class="language-cpp">int main()
{
    using namespace std;
    vector&lt; string &gt; alles[Tupel::size];    // die Tabelle

    // --   Einlesen
    ifstream file(&quot;input.txt&quot;);
    if( !file.is_open() )
        cerr &lt;&lt; &quot;Fehler beim Oeffnen der Datei&quot; &lt;&lt; endl;
    for( Tupel trp; file &gt;&gt; trp; ) // bis Fehler oder Ende
    {
        for( int i= 0; i &lt; Tupel::size; ++i )
            alles[i].push_back( trp.m_txt[i] );
    }
    if( !file.eof() ) // prüfen, ob Fileende erreicht
        cerr &lt;&lt; &quot;fehler beim Lesen&quot; &lt;&lt; endl;

    // --   Ausgeben
    ofstream ausgabe(&quot;output.txt&quot;);
    for( int i = 0; i &lt; Tupel::size; ++i )
    {
        copy( alles[i].begin(), alles[i].end(),
            ostream_iterator&lt; string &gt;( ausgabe &lt;&lt; i+1 &lt;&lt; &quot; &quot;, &quot; &quot; ) );
        ausgabe &lt;&lt; endl;
    }
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1490402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1490402</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 11 Apr 2008 14:42:32 GMT</pubDate></item></channel></rss>