<?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 iter und Vektor bei hinzufügen von Elementen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin ein C++ Neuling und möchte ein Programm<br />
schreiben welches dynamische Elemente in einen Vektor vec1 einliest,<br />
der zuvor schon Elemente erhalten hat und zwar mit Hilfe eines<br />
anderen Vektors vec2. Wobei ich nicht weiß ob man das besser machen kann =<br />
Frage. Problem ist nämlich, dass iter1 von vec1 dabei seine Bedeutung verliert,<br />
also Speicherzugriffsfehler.</p>
<p>In 'Pseudocode' folgende Idee:</p>
<p>vec1<br />
vec2</p>
<pre><code class="language-cpp">Init (vec1) // initialisiere vec1 mit irgendwas

for (alle Elemente in vec1)
    if(Bedingung wahr)
        Function_fill_(vec2) // belade vec2 mit irgendwas
        vec1.push_back(alle Elemente in vec2)
        // dabei verliert der iter von vec1 seine Bedeutung
        // -&gt; Problem
</code></pre>
<p>Es soll für jedes Element aus vec1 Werte des Vektors vec2<br />
unter bestimmten Voraussetzungen an vec1 drangefügt werden.<br />
D.h. sie sollen dann auch in der gleichen for-Schleife wieder<br />
berbeitet werden:</p>
<pre><code class="language-cpp">for (alle Elemente in vec1 + neue Elemente aus vec2)
    if(Bedingung wahr)
        Function_fill_(vec2) // belade vec2 mit irgendwas
        vec1.push_back(alle Elemente in vec2)
        // dabei verliert der iter von vec1 seine Bedeutung
        // -&gt; Problem
</code></pre>
<pre><code class="language-cpp">for(vector&lt;int&gt;::iterator iter1 = vec1.begin(); iter1 != vec1.end(); iter1++)
	{

				Function_fill_up(&amp;vec2);

				for(vector&lt;int&gt;::iterator iter2 = vec2.begin(); iter2 != vec2.end(); iter2++)	
				{

					//neue Werte in vec1 füllen, sollen erneut in Fkt. 
					//Function_fill_up(&amp;vec2); untersucht werden
					vec1.push_back(*iter2);

				}

				Clean(vec2);//löschen der Werte

	}
</code></pre>
<p>Hat irgend jemand Tipps ?</p>
<p>Danke im Voraus,</p>
<p>fooboo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/275370/problem-mit-iter-und-vektor-bei-hinzufügen-von-elementen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 02:01:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/275370.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Oct 2010 16:07:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit iter und Vektor bei hinzufügen von Elementen on Wed, 13 Oct 2010 16:11:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin ein C++ Neuling und möchte ein Programm<br />
schreiben welches dynamische Elemente in einen Vektor vec1 einliest,<br />
der zuvor schon Elemente erhalten hat und zwar mit Hilfe eines<br />
anderen Vektors vec2. Wobei ich nicht weiß ob man das besser machen kann =<br />
Frage. Problem ist nämlich, dass iter1 von vec1 dabei seine Bedeutung verliert,<br />
also Speicherzugriffsfehler.</p>
<p>In 'Pseudocode' folgende Idee:</p>
<p>vec1<br />
vec2</p>
<pre><code class="language-cpp">Init (vec1) // initialisiere vec1 mit irgendwas

for (alle Elemente in vec1)
    if(Bedingung wahr)
        Function_fill_(vec2) // belade vec2 mit irgendwas
        vec1.push_back(alle Elemente in vec2)
        // dabei verliert der iter von vec1 seine Bedeutung
        // -&gt; Problem
</code></pre>
<p>Es soll für jedes Element aus vec1 Werte des Vektors vec2<br />
unter bestimmten Voraussetzungen an vec1 drangefügt werden.<br />
D.h. sie sollen dann auch in der gleichen for-Schleife wieder<br />
berbeitet werden:</p>
<pre><code class="language-cpp">for (alle Elemente in vec1 + neue Elemente aus vec2)
    if(Bedingung wahr)
        Function_fill_(vec2) // belade vec2 mit irgendwas
        vec1.push_back(alle Elemente in vec2)
        // dabei verliert der iter von vec1 seine Bedeutung
        // -&gt; Problem
</code></pre>
<pre><code class="language-cpp">for(vector&lt;int&gt;::iterator iter1 = vec1.begin(); iter1 != vec1.end(); iter1++)
	{

				Function_fill_up(&amp;vec2);

				for(vector&lt;int&gt;::iterator iter2 = vec2.begin(); iter2 != vec2.end(); iter2++)	
				{

					//neue Werte in vec1 füllen, sollen erneut in Fkt. 
					//Function_fill_up(&amp;vec2); untersucht werden
					vec1.push_back(*iter2);

				}

				Clean(vec2);//löschen der Werte

	}
</code></pre>
<p>Hat irgend jemand Tipps ?</p>
<p>Danke im Voraus,</p>
<p>fooboo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965119</guid><dc:creator><![CDATA[fooboo]]></dc:creator><pubDate>Wed, 13 Oct 2010 16:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit iter und Vektor bei hinzufügen von Elementen on Wed, 13 Oct 2010 16:16:32 GMT]]></title><description><![CDATA[<p>Benutze anstatt eines Iterators einen Zählindex, um dein Problem auf die schnelle Art und Weise zu lösen.</p>
<p>Und überdenke vielleicht noch einmal deinen Algorithmus. Das kommt mir alles ziemlich merkwürdig vor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965123</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 13 Oct 2010 16:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit iter und Vektor bei hinzufügen von Elementen on Wed, 13 Oct 2010 16:23:02 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Problem ist, es ist nicht mein Algorithmus sondern<br />
ein bestimmter Suchalgorithmus, welcher so funktioniert.</p>
<p>Es müssen auf jeden Fall die Elemente welche aus dem 2. Vektor kommen<br />
mit in die obere schleife übernommen werden und dann nochmals untersucht werden<br />
je nachdem ob sie bestimmte Eigenschaften haben.</p>
<p>Werde es mal mit dem Zählindex versuchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965127</guid><dc:creator><![CDATA[fooboo]]></dc:creator><pubDate>Wed, 13 Oct 2010 16:23:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit iter und Vektor bei hinzufügen von Elementen on Wed, 13 Oct 2010 16:38:28 GMT]]></title><description><![CDATA[<p>eine andere Lösung wäre, den 'vec1' durch eine Liste zu ersetzen. Die std::list ist wie vector ein sequentieller Container, deren Iteratoren aber beim Einfügen von weiteren Elementen ihre Bedeutung nicht verlieren.</p>
<p>Etwa so:</p>
<pre><code class="language-cpp">list&lt; int &gt; vec1;
    vec1.push_back( 27 );   // irgendwie mit Elementen füllen
    for( list&lt;int&gt;::iterator iter1 = vec1.begin(); iter1 != vec1.end(); ++iter1 )
    {
        // if( bedingung als Funktion von *iter1 ) ...
        vector&lt; int &gt; vec2; // besser lokal anlegen, so entfällt das Clean!
        Function_fill_up(&amp;vec2);
        copy( vec2.begin(), vec2.end(), back_inserter( vec1 ) ); // eleganter mit copy; geht mit vector und list; erfodert #include &lt;iterator&gt;
    }
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965134</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 13 Oct 2010 16:38:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit iter und Vektor bei hinzufügen von Elementen on Wed, 13 Oct 2010 16:50:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vielen Dank! Werde ich morgen gleich versuchen hört sich<br />
nach dem an, was ich suche.</p>
<p>Edit: Übrigens sehr gut erläutert, auch mit den Kommentaren.</p>
<p>Gruß,</p>
<p>fooboo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965138</guid><dc:creator><![CDATA[fooboo]]></dc:creator><pubDate>Wed, 13 Oct 2010 16:50:22 GMT</pubDate></item></channel></rss>