<?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.pushback()]]></title><description><![CDATA[<p>Hallo, habe folgendes Problem: Ich möchte eigene Objekte in einen vector speichern. Kompiliert wird auch alles, nur funktionieren tuts nicht! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Wenn ich den vector ausgebe enthält er immer nur ein Objekt! Und zwar das mit dem ich die Print() Methode aufrufe. Kompliziert zu erklären, ich poste erstmal meinen Code:</p>
<p>[/cpp]<br />
#include &lt;iostream&gt;<br />
#include &lt;vector&gt;<br />
#include &lt;algorithm&gt;<br />
#include &lt;fstream&gt;</p>
<p>using namespace std;</p>
<p>class TestObj<br />
{<br />
int x, y;<br />
vector&lt;TestObj&gt;Speicher;<br />
public:<br />
TestObj(int in_x, int in_y);<br />
void Speichern();<br />
void Print();</p>
<p>friend ostream&amp; operator &lt;&lt;(ostream&amp; ostr, const TestObj&amp; in);<br />
};</p>
<p>TestObj::TestObj(int in_x, int in_y)<br />
{<br />
x = in_x;<br />
y = in_y;<br />
}</p>
<p>void TestObj::Speichern()<br />
{<br />
Speicher.push_back(*this);<br />
}</p>
<p>ostream&amp; operator&lt;&lt;(ostream&amp; ostr, const TestObj&amp; in)<br />
{<br />
ostr &lt;&lt; &quot;x= &quot; &lt;&lt;in.x &lt;&lt; endl &lt;&lt; &quot;y= &quot; &lt;&lt; in.y &lt;&lt; endl;<br />
return ostr;<br />
}</p>
<p>void TestObj::Print()<br />
{<br />
for(unsigned int i=0; i&lt;Speicher.size(); i++)<br />
{ cout &lt;&lt; Speicher[i] &lt;&lt; endl;}<br />
}<br />
int main()<br />
{<br />
TestObj Neu(2,3);<br />
TestObj Neu2(3,4);<br />
Neu.Speichern();<br />
Neu2.Speichern();<br />
Neu2.Print();// Nur dieses Objekt wird ausgegeben<br />
return 0;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159456/problem-mit-vector-pushback</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 10:40:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159456.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Sep 2006 10:14:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 10:14:51 GMT]]></title><description><![CDATA[<p>Hallo, habe folgendes Problem: Ich möchte eigene Objekte in einen vector speichern. Kompiliert wird auch alles, nur funktionieren tuts nicht! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Wenn ich den vector ausgebe enthält er immer nur ein Objekt! Und zwar das mit dem ich die Print() Methode aufrufe. Kompliziert zu erklären, ich poste erstmal meinen Code:</p>
<p>[/cpp]<br />
#include &lt;iostream&gt;<br />
#include &lt;vector&gt;<br />
#include &lt;algorithm&gt;<br />
#include &lt;fstream&gt;</p>
<p>using namespace std;</p>
<p>class TestObj<br />
{<br />
int x, y;<br />
vector&lt;TestObj&gt;Speicher;<br />
public:<br />
TestObj(int in_x, int in_y);<br />
void Speichern();<br />
void Print();</p>
<p>friend ostream&amp; operator &lt;&lt;(ostream&amp; ostr, const TestObj&amp; in);<br />
};</p>
<p>TestObj::TestObj(int in_x, int in_y)<br />
{<br />
x = in_x;<br />
y = in_y;<br />
}</p>
<p>void TestObj::Speichern()<br />
{<br />
Speicher.push_back(*this);<br />
}</p>
<p>ostream&amp; operator&lt;&lt;(ostream&amp; ostr, const TestObj&amp; in)<br />
{<br />
ostr &lt;&lt; &quot;x= &quot; &lt;&lt;in.x &lt;&lt; endl &lt;&lt; &quot;y= &quot; &lt;&lt; in.y &lt;&lt; endl;<br />
return ostr;<br />
}</p>
<p>void TestObj::Print()<br />
{<br />
for(unsigned int i=0; i&lt;Speicher.size(); i++)<br />
{ cout &lt;&lt; Speicher[i] &lt;&lt; endl;}<br />
}<br />
int main()<br />
{<br />
TestObj Neu(2,3);<br />
TestObj Neu2(3,4);<br />
Neu.Speichern();<br />
Neu2.Speichern();<br />
Neu2.Print();// Nur dieses Objekt wird ausgegeben<br />
return 0;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137854</guid><dc:creator><![CDATA[doctorwario]]></dc:creator><pubDate>Fri, 15 Sep 2006 10:14:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 10:39:26 GMT]]></title><description><![CDATA[<p>doctorwario schrieb:</p>
<blockquote>
<p>Neu2.Print();// Nur dieses Objekt wird ausgegeben</p>
</blockquote>
<p>Logisch. Das andere ist ja in Neu gespeichert, nicht in Neu2. Du speicherst in Neu und Neu2 jeweils eine Kopie des Objekts selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137860</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 15 Sep 2006 10:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 10:45:30 GMT]]></title><description><![CDATA[<p>Ja, aber Print() durchläuft doch eine Schleife, die den gesamten vector Inhalt ausgeben soll! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Also sollte doch Neu und Neu2 ausgegeben werden, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137862</guid><dc:creator><![CDATA[doctorwario]]></dc:creator><pubDate>Fri, 15 Sep 2006 10:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 10:58:00 GMT]]></title><description><![CDATA[<p>Ja, das tut es - aber jedes Objekt hat einen eigenen Vektor. In Neu.Speicher steht eine Kopie von Neu drin, in Neu2.Speicher eine Kopie von Neu2 (und letztere wird ausgegeben).</p>
<p>(btw, was macht es für einen Sinn, Kopien von dir selbst lokal zu speichern?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137866</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 15 Sep 2006 10:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 11:46:12 GMT]]></title><description><![CDATA[<p>[quote=&quot;CStoll&quot;]Ja, das tut es - aber jedes Objekt hat einen eigenen Vektor. In Neu.Speicher steht eine Kopie von Neu drin, in Neu2.Speicher eine Kopie von Neu2 (und letztere wird ausgegeben).</p>
<p>Achso das war mir nicht bewusst. Wie kann ich denn am einfachsten eigene Objekte in einem Vektor ablegen?<br />
Der gepostete Code ist nur zum testen, ich möchte später Objekte zum zwischenspeichern in einen vektor ablegen und bei Bedarf nach einem bestimmten Objekt suchen können.</p>
<p>Danke für eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137888</guid><dc:creator><![CDATA[doctorwario]]></dc:creator><pubDate>Fri, 15 Sep 2006 11:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 11:52:23 GMT]]></title><description><![CDATA[<p>mittels <a href="http://www.linuxsoftware.co.nz/containerchoice.png" rel="nofollow">http://www.linuxsoftware.co.nz/containerchoice.png</a> richtigen container aussuchen und dann per intellisens + intelligenz oder google + stl-referenz richtig benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137895</guid><dc:creator><![CDATA[cpp0x10]]></dc:creator><pubDate>Fri, 15 Sep 2006 11:52:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 11:54:49 GMT]]></title><description><![CDATA[<p>doctorwario schrieb:</p>
<blockquote>
<p>Achso das war mir nicht bewusst. Wie kann ich denn am einfachsten eigene Objekte in einem Vektor ablegen?</p>
</blockquote>
<pre><code class="language-cpp">int main()
{
  std::vector&lt;TestObj&gt; v;
  v.push_back(TestObj(2, 3));
  v.push_back(TestObj(3, 4));
}
</code></pre>
<p>btw, es gibt neben &quot;Antwort Absenden&quot; auch einen &quot;Vorschau&quot;-Button -- sehr nützlich um nachzusehen ob du irgendwelche Tags kaputt gemacht hast...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137898</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Fri, 15 Sep 2006 11:54:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 14:09:37 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int main()
{
  std::vector&lt;TestObj&gt; v;
  v.push_back(TestObj(2, 3));
  v.push_back(TestObj(3, 4));
}
</code></pre>
</blockquote>
<p>Wie ich das in main() mache is mir klar. Ich will aber ja mittels einer Funktion hin und wieder mal ein Objekt an den Vektor anhängen.<br />
Ich möchte später in dem Programm (zur Laufzeit) Objekte erzeugen (mit new)<br />
und dann in dem Vektor abspeichern, bzw darin nach Objekten suchen etc.</p>
<p>Mit globalen Funktionen klappt das wunderbar, nur mit meiner Klasse nicht.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: Kann ich die Objekte denn irgendwie in den gleichen Vektor speichern?<br />
z.B. dynamisch mit vector&lt;TestObj*&gt;Speicher; und new?</p>
<p>Fragen über Fragen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138000</guid><dc:creator><![CDATA[doctorwario]]></dc:creator><pubDate>Fri, 15 Sep 2006 14:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 14:23:29 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class TestObjekte
{
public:
    void save( TestObj* obj )
    {
        speicher.push_back( obj );
    }
    void print()
    {
        for(unsigned int i=0; i&lt;speicher.size(); i++) //Würd ich lieber mit Iteratoren machen
        {
             cout &lt;&lt; speicher[i] &lt;&lt; endl;
        } 
    }
private:
    std::vector&lt; TestObj* &gt; speicher;
};

int main()
{
    TestObjekte test;
    TestObj* neu1 = new TestObj(2,3);
    TestObj* neu2 = new TestObj(3,4);
    test.save( neu1 );
    test.save( neu2 );
    test.print();
}
</code></pre>
<p>Ungetested und unvollständig, nur als Idee...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138005</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Fri, 15 Sep 2006 14:23:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 14:23:35 GMT]]></title><description><![CDATA[<p>Ein static vector sollte es auch tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138007</guid><dc:creator><![CDATA[qasdfgh]]></dc:creator><pubDate>Fri, 15 Sep 2006 14:23:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 14:24:00 GMT]]></title><description><![CDATA[<p>doctorwario schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class TestObj
{
	int x, y;
	vector&lt;TestObj&gt;Speicher;
/* ... */
};

int main()
{
	TestObj Neu(2,3);
	TestObj Neu2(3,4);
}
</code></pre>
</blockquote>
<p>Die Frage kannst Du Dir mit etwas Grübeln selbst beantworten:<br />
Du hast TestObj, welches x, y und Speicher enthält. Du erzeugt zwei Instanzen Neu und Neu2. Das x in Neu ist 2, das x in Neu2 ist 3. Also sind die x beider Instanzen unabhängig voneinander (um nicht zu sagen verschieden). Nun, wie wird es wohl mit &quot;Speicher&quot; sein? Haben Neu und Neu2 den <strong>gleichen</strong> Vector &quot;Speicher&quot;?</p>
<p>Wenn Du einen Vector von Zeigern anlegst, statt einen Vector von TestObj, ändert das dann was an dem o.a. Umstand?</p>
<p>Du kannst aber einen static vector&lt;TestObj&gt; in Dein TestObj legen, denn dieses static bewirkt, dass es den Vector nur ein einziges Mal im Programm gibt, und zwar schon wenn noch garkeine Instanz von TestObj existiert. Ob Du dort allerdings via TestObj::Speichern eine Kopie von *this reinlegen möchtest ist wieder ne andere Frage...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138008</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 15 Sep 2006 14:24:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit vector.pushback() on Fri, 15 Sep 2006 15:01:44 GMT]]></title><description><![CDATA[<p>Erstmal danke für eure Antworten!</p>
<p>Ich probier das gleich mal aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138029</guid><dc:creator><![CDATA[doctorwario]]></dc:creator><pubDate>Fri, 15 Sep 2006 15:01:44 GMT</pubDate></item></channel></rss>