<?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[Konstruktor mit STL vector anlegen]]></title><description><![CDATA[<p>Hallo !</p>
<p>Ich habe eine Klasse (-&gt; Zahlenliste) und ein private Datenelement zahlen vom STL Typ vector&lt;int&gt;.</p>
<p>Nun soll ich einen Konstruktor mit einem int Parameter für die Anzahl der enthaltenen Zahlen (die Liste soll n Elemente haben , die je eine zufällige Zahl sind) erstellen.</p>
<p>Kann ich mit meinem vector , der zahlen heisst, so umgehen wie mit einem Array?Oder warum gibt mein Code hier einen Fehler?</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;algorithm&gt;
using namespace std;

class Zahlenliste{
	  private:
	  		  vector&lt;int&gt; zahlen;

	  public:
	  		 Zahlenliste(int n):zahlen(n){
			 				 zahlen=new int[n];
			 				 for(int i=0;i&lt;n;i++)
			 				 zahlen[i]=(rand()%n)+1;
							  }
	  };
</code></pre>
<p>Lg caro</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259760/konstruktor-mit-stl-vector-anlegen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 17:14:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259760.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Jan 2010 13:10:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:10:07 GMT]]></title><description><![CDATA[<p>Hallo !</p>
<p>Ich habe eine Klasse (-&gt; Zahlenliste) und ein private Datenelement zahlen vom STL Typ vector&lt;int&gt;.</p>
<p>Nun soll ich einen Konstruktor mit einem int Parameter für die Anzahl der enthaltenen Zahlen (die Liste soll n Elemente haben , die je eine zufällige Zahl sind) erstellen.</p>
<p>Kann ich mit meinem vector , der zahlen heisst, so umgehen wie mit einem Array?Oder warum gibt mein Code hier einen Fehler?</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;algorithm&gt;
using namespace std;

class Zahlenliste{
	  private:
	  		  vector&lt;int&gt; zahlen;

	  public:
	  		 Zahlenliste(int n):zahlen(n){
			 				 zahlen=new int[n];
			 				 for(int i=0;i&lt;n;i++)
			 				 zahlen[i]=(rand()%n)+1;
							  }
	  };
</code></pre>
<p>Lg caro</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1845711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845711</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:10:07 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:17:15 GMT]]></title><description><![CDATA[<p>fischldi schrieb:</p>
<blockquote>
<p>Hallo !</p>
<p>Ich habe eine Klasse (-&gt; Zahlenliste) und ein private Datenelement zahlen vom STL Typ vector&lt;int&gt;.</p>
<p>Nun soll ich einen Konstruktor mit einem int Parameter für die Anzahl der enthaltenen Zahlen (die Liste soll n Elemente haben , die je eine zufällige Zahl sind) erstellen.</p>
<p>Kann ich mit meinem vector , der zahlen heisst, so umgehen wie mit einem Array?Oder warum gibt mein Code hier einen Fehler?</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;algorithm&gt;
using namespace std;

class Zahlenliste{
	  private:
	  		  vector&lt;int&gt; zahlen;
	  
	  public:
	  		 Zahlenliste(int n):zahlen(n){
			 				 zahlen=new int[n];
			 				 for(int i=0;i&lt;n;i++)
			 				 zahlen[i]=(rand()%n)+1;
							  }
	  };
</code></pre>
<p>Lg caro</p>
</blockquote>
<p>die Zeile</p>
<pre><code class="language-cpp">zahlen=new int[n];
</code></pre>
<p>ist unnötig. Ein Vector ist dynamisch und du musst die Größe nicht angeben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1845715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845715</guid><dc:creator><![CDATA[sirchillalot]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:17:40 GMT]]></title><description><![CDATA[<p>Bei einem Container sollte man versuchen, die Methoden des Containers zu benutzen, um Elemente zu verändern. Ein vector&lt;&gt; ist ja schließlich ein Objekt.</p>
<p>Schau mal hier:<br />
<a href="http://www.cppreference.com/wiki/stl/vector/start" rel="nofollow">http://www.cppreference.com/wiki/stl/vector/start</a></p>
<p>Da findest du alle Methoden und Beispiele zur Benutzung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1845716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845716</guid><dc:creator><![CDATA[DarthZiu]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:17:40 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:18:16 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/stl/vector/vector/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/vector/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1845717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845717</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:18:16 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:19:54 GMT]]></title><description><![CDATA[<p>Danke für den Tipp!Ist es sinnvoll einen Itterator zu verwenden der meine liste füllt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1845720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845720</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:19:54 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:24:25 GMT]]></title><description><![CDATA[<p>Kommt darauf an. Was hast du vor? Btw: Am Besten niemals den std-Namensraum auflösen und zahlen kann in diesem Falle auch const sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1845725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845725</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:25:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;algorithm&gt;
using namespace std;

class Zahlenliste{
	  private:
	  		  vector&lt;int&gt; zahlen;
	  		  vector&lt;int&gt;::iterator it;

	  public:
	  		 Zahlenliste(int n):zahlen(n){
			 				 for(it=zahlen.begin();it&lt;zahlen.end();it++)
			 				 zahlen,push_back((rand()%n));
							  }
	  };
</code></pre>
<p>Ich habe das jetzt so gemacht...macht man das so? <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/1845728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845728</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:34:34 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Btw: Am Besten niemals den std-Namensraum auflösen</p>
</blockquote>
<ol>
<li>Niemals in <strong>Headern</strong></li>
<li>Gilt das nicht nur für std sondern für jeden Namensraum!</li>
</ol>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23864">@fischldi</a>:<br />
In dem Fall ist das unnötige CPU-Zeit, die du da verbrätst.<br />
In der Initialisierungsliste füllst du deinen vector mit (defaultkonstruierten) Werten. Im Konstruktorbody weist du denen dann nochmal neue Werte zu.</p>
<p>Es wäre besser, wenn du deinem Vector genügend Speicher gibst und dann einfach mit push_back arbeitest:</p>
<pre><code class="language-cpp">ZahleListe::ZahlenListe( size_t size )
{
    zahlen.reserve(size); // verhindert unnötiges Kopieren, da der vector
    // falls er zu klein ist sich selbstständig vergrößert
    for( size_t i = 0; i &lt; size; i++ ) {
        zahlen.push_back((rand()%size));
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1845734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845734</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:34:34 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Wed, 27 Jan 2010 13:48:54 GMT]]></title><description><![CDATA[<p>Nein. Zum ersten, lass die using-direktive aus dem header raus. Siehe FAQ-Eintrag dazu.<br />
Zweitens, wenn du den vector mit (n) initalisierst, legst du bereits n elemente an (default-kosnturiert, also mit 0). durchs push_back schiebst du dann nochmal n elemente hinten dran. Das ist wohl kaum das was du willst. Außerdem benutzt du den iterator garnicht, also ist die Schleife auch murks. Davon abgesehn sollte der Iterator wenn dann lokal in der Schleife benutzt werden. Lies dir dringend nochmal ein paar Tutroials durch, das sieht nicht so aus als wüsstest du Bescheid was du da tust, sondern als ob du nur blind herumprobierst, und das bringt garnichts.</p>
<p>Folgene Möglichkeiten:</p>
<pre><code class="language-cpp">#include&lt;vector&gt;
#include &lt;cstdlib&gt; // for 'rand()'

class Zahlenliste
{
private:
  vector&lt;int&gt; zahlen;

public:
  Zahlenliste(int n)
  : zahlen(n) //Groesse vorbelegt
  {
    for(int i = 0; i &lt; n; ++i)
      zahlen[i] = rand() % n; //vorinitialisierte Elemente aendern
  }
};
</code></pre>
<pre><code class="language-cpp">#include&lt;vector&gt;
#include &lt;cstdlib&gt; // for 'rand()'

class Zahlenliste
{
private:
  vector&lt;int&gt; zahlen;

public:
  Zahlenliste(int n)
  : zahlen() //leerer vector
  {
    for(int i = 0; i &lt; n; ++i)
      zahlen.push_back(rand()%n);
  }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1845746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1845746</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 27 Jan 2010 13:48:54 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor mit STL vector anlegen on Thu, 28 Jan 2010 17:34:36 GMT]]></title><description><![CDATA[<p>Vielen Dank für Eure Hilfe!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1846566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1846566</guid><dc:creator><![CDATA[fischldi]]></dc:creator><pubDate>Thu, 28 Jan 2010 17:34:36 GMT</pubDate></item></channel></rss>