<?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[std::vector ... 6 Zahlen ermitteln und im Vecotr löschen]]></title><description><![CDATA[<p>Bin lediglich Hobbyprogrammierer - also habt Nachsicht:</p>
<p>Mein Programm soll einen Vector mit Zahlen von 1 bis 49 initialisieren<br />
Dann zufällig 6 Zahlen ermitteln und diese (und hier liegt das Problem) im Vector löschen.</p>
<p>Mein Programm:</p>
<pre><code>#include &lt;vector&gt;
#include &lt;iostream&gt;
#include &lt;ctime&gt;

using namespace std;

int main()
{
	vector&lt;int&gt; liste;

	srand(time(NULL));;				// Zufallszahlen vorbereiten

	// Liste füllen mit Zahlen von 1 bis 49
	for(int i = 1; i &lt;= 49; i++)
	{
		liste.push_back(i);
	}

	// Zahl ziehen: ....
	for(int i = 0; i &lt; 6 ; ++i)
	{
		vector&lt;int&gt;::iterator it = liste.begin();	// it bei Position: 0

		int zufall = rand() % 49 + 1;	// zufällige Zahl 1 - 49

	    it += zufall;					// iterator die Position geben
		cout &lt;&lt; *it &lt;&lt; endl;			// ausgeben
		liste.erase(it);				// löschen
	}

	cout &lt;&lt; endl;			// Leerzeile

	// nach 6 Zahlen vector nochmals ausgeben .... hat das alles funktioniert ?
	vector&lt;int&gt;::iterator it;
	for(it = liste.begin(); it != liste.end(); ++it)
	{
		cout &lt;&lt; *it &lt;&lt; endl;
	}

}
</code></pre>
<p>Bei der Ausführung gibt er mir gelegentlich (nicht immer) ein Segmention fault. Irgendwo scheine ich Grenzen zu überschreiten - kann mir jemand sagen wo?<br />
Gibt es eine elegantere Lösung das Umzusetzen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330475/std-vector-6-zahlen-ermitteln-und-im-vecotr-löschen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 06:12:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330475.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jan 2015 11:50:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::vector ... 6 Zahlen ermitteln und im Vecotr löschen on Mon, 12 Jan 2015 11:50:02 GMT]]></title><description><![CDATA[<p>Bin lediglich Hobbyprogrammierer - also habt Nachsicht:</p>
<p>Mein Programm soll einen Vector mit Zahlen von 1 bis 49 initialisieren<br />
Dann zufällig 6 Zahlen ermitteln und diese (und hier liegt das Problem) im Vector löschen.</p>
<p>Mein Programm:</p>
<pre><code>#include &lt;vector&gt;
#include &lt;iostream&gt;
#include &lt;ctime&gt;

using namespace std;

int main()
{
	vector&lt;int&gt; liste;

	srand(time(NULL));;				// Zufallszahlen vorbereiten

	// Liste füllen mit Zahlen von 1 bis 49
	for(int i = 1; i &lt;= 49; i++)
	{
		liste.push_back(i);
	}

	// Zahl ziehen: ....
	for(int i = 0; i &lt; 6 ; ++i)
	{
		vector&lt;int&gt;::iterator it = liste.begin();	// it bei Position: 0

		int zufall = rand() % 49 + 1;	// zufällige Zahl 1 - 49

	    it += zufall;					// iterator die Position geben
		cout &lt;&lt; *it &lt;&lt; endl;			// ausgeben
		liste.erase(it);				// löschen
	}

	cout &lt;&lt; endl;			// Leerzeile

	// nach 6 Zahlen vector nochmals ausgeben .... hat das alles funktioniert ?
	vector&lt;int&gt;::iterator it;
	for(it = liste.begin(); it != liste.end(); ++it)
	{
		cout &lt;&lt; *it &lt;&lt; endl;
	}

}
</code></pre>
<p>Bei der Ausführung gibt er mir gelegentlich (nicht immer) ein Segmention fault. Irgendwo scheine ich Grenzen zu überschreiten - kann mir jemand sagen wo?<br />
Gibt es eine elegantere Lösung das Umzusetzen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437113</guid><dc:creator><![CDATA[morbidMo]]></dc:creator><pubDate>Mon, 12 Jan 2015 11:50:02 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector ... 6 Zahlen ermitteln und im Vecotr löschen on Mon, 12 Jan 2015 12:05:26 GMT]]></title><description><![CDATA[<p>Wenn Du eine Zahl gezogen und gelöscht hast, solltest Du natürlich keine Zufallszahl mehr im Bereich bis 49 ziehen ...</p>
<p>zB:</p>
<pre><code>int zufall = rand() % (49 - i) + 1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2437114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437114</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Mon, 12 Jan 2015 12:05:26 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector ... 6 Zahlen ermitteln und im Vecotr löschen on Mon, 12 Jan 2015 12:22:01 GMT]]></title><description><![CDATA[<p>Hallo morbidMo,</p>
<p>Willlkommen im C++-Forum.</p>
<p>Belli schrieb:</p>
<blockquote>
<p>Wenn Du eine Zahl gezogen und gelöscht hast, solltest Du natürlich keine Zufallszahl mehr im Bereich bis 49 ziehen ...</p>
<p>zB:</p>
<pre><code>int zufall = rand() % (49 - i) + 1;
</code></pre>
</blockquote>
<p>Ist im Prinzip richtig , muss aber heißen:</p>
<pre><code>int zufall = rand() % (49 - i);
</code></pre>
<p>'zufall' ist ein Index und läuft von 0..48 bzw. 0..48-i.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437118</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Mon, 12 Jan 2015 12:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector ... 6 Zahlen ermitteln und im Vecotr löschen on Mon, 12 Jan 2015 12:59:42 GMT]]></title><description><![CDATA[<p>Das stimmt natürlich! Hab mich so auf den von mir auf den ersten Blick gefundenen Fehler gestürzt, dass ich den zweiten Blick zu ungenau gemacht hab. <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437125</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Mon, 12 Jan 2015 12:59:42 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector ... 6 Zahlen ermitteln und im Vecotr löschen on Mon, 12 Jan 2015 13:32:15 GMT]]></title><description><![CDATA[<p>Vielen Dank für die schnelle Hilfe!! Jetzt leuchtet mir das auch ein ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2437132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2437132</guid><dc:creator><![CDATA[morbidMo]]></dc:creator><pubDate>Mon, 12 Jan 2015 13:32:15 GMT</pubDate></item></channel></rss>