<?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[Vectoren c++ verständnissfrage]]></title><description><![CDATA[<p>so wie hier an meinem beispiel unten angeführt wird ein Iterator auf die position 2 bzw 1 des Vectors gelegt. und mit insert an position 2 bzw 1 der wert 99 angelegt, würde ich die zeile mit Vec1.insert nach dem pop.back einfügen sollte dem vectors nichts eingefügt werden da der Iterator auf das gelöschte Element zeigt und der Vector ja nicht mehr 11 Elemente(die nach dem push_back erweitert wurden) enthält sonder nur noch 10 Gross ist? bin ich damit richtig?</p>
<p>2te Frage ::: Also muss man so oder so jedes mal wenn man mit einem Vector arbeitet den Iterator quasi neu positionieren?</p>
<p>Danke<br />
Lg<br />
Buntehaare</p>
<pre><code class="language-cli">vector&lt;int&gt;Vec1(10); // erstellt einen vector mit einer elementanzahl von 10;
	vector&lt;int&gt;::iterator it; // erstellt einen Iterator (zeiger/cursor) 
	it=Vec1.begin()+1;  // setzt den Iterator auf die erste Pos des Vectors Vec1, definert den Iterator auch zu diesen Vector!
	Vec1.insert(it,99); // nachdem mit dem Vector irgendetwas gemacht wrude ist die position vom Iterator werlcher zuvor mit begin() definiert wurde nicht mehr gültig!
	cout &lt;&lt; &quot;Anzahl maximaler Elmente:&quot; &lt;&lt; Vec1.size() &lt;&lt; endl; // gibt die grösse , die anzhal der elmente aus;
	Vec1.push_back(45); // fügt am ende des vectors einen wert ein, und vergrössert diesen
	Vec1.pop_back(); // löscht den letzten eintrag eines vectors, und verkleinert diesen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/295725/vectoren-c-verständnissfrage</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 07:59:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295725.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Nov 2011 13:03:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 13:03:52 GMT]]></title><description><![CDATA[<p>so wie hier an meinem beispiel unten angeführt wird ein Iterator auf die position 2 bzw 1 des Vectors gelegt. und mit insert an position 2 bzw 1 der wert 99 angelegt, würde ich die zeile mit Vec1.insert nach dem pop.back einfügen sollte dem vectors nichts eingefügt werden da der Iterator auf das gelöschte Element zeigt und der Vector ja nicht mehr 11 Elemente(die nach dem push_back erweitert wurden) enthält sonder nur noch 10 Gross ist? bin ich damit richtig?</p>
<p>2te Frage ::: Also muss man so oder so jedes mal wenn man mit einem Vector arbeitet den Iterator quasi neu positionieren?</p>
<p>Danke<br />
Lg<br />
Buntehaare</p>
<pre><code class="language-cli">vector&lt;int&gt;Vec1(10); // erstellt einen vector mit einer elementanzahl von 10;
	vector&lt;int&gt;::iterator it; // erstellt einen Iterator (zeiger/cursor) 
	it=Vec1.begin()+1;  // setzt den Iterator auf die erste Pos des Vectors Vec1, definert den Iterator auch zu diesen Vector!
	Vec1.insert(it,99); // nachdem mit dem Vector irgendetwas gemacht wrude ist die position vom Iterator werlcher zuvor mit begin() definiert wurde nicht mehr gültig!
	cout &lt;&lt; &quot;Anzahl maximaler Elmente:&quot; &lt;&lt; Vec1.size() &lt;&lt; endl; // gibt die grösse , die anzhal der elmente aus;
	Vec1.push_back(45); // fügt am ende des vectors einen wert ein, und vergrössert diesen
	Vec1.pop_back(); // löscht den letzten eintrag eines vectors, und verkleinert diesen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2146580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146580</guid><dc:creator><![CDATA[buntehaare]]></dc:creator><pubDate>Sun, 20 Nov 2011 13:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 13:13:50 GMT]]></title><description><![CDATA[<p>Bei allem was die Größe des vectors ändert muss man davon ausgehen, dass die Iteratoren ungültig werden. Ein vector::iterator ist ein einfacher Zeiger in den Speicherbereich des Vectors. Da der vector nicht bei jedem insert seinen Speicherbereich vergößert, können die Iteratoren auch mal gültig bleiben. Es ist aber reine Glückssache.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2146582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146582</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 20 Nov 2011 13:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 13:17:46 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Bei allem was die Größe des vectors ändert muss man davon ausgehen, dass die Iteratoren ungültig werden. Ein vector::iterator ist ein einfacher Zeiger in den Speicherbereich des Vectors. Da der vector nicht bei jedem insert seinen Speicherbereich vergößert, können die Iteratoren auch mal gültig bleiben. Es ist aber reine Glückssache.</p>
</blockquote>
<p>danke ja so habe ich das auch dann richtig verstanden, kann mir vielleicht bitte jemand eine gute referenz welche den vector und seine funktionen gut erklärt, nenen, wäre sehr dankbar, in meinem c++ buch wird auf den vector leider fast garnicht eingegangen. vielleicht könntet ihr mir gleich ein gutes c++ grundwissen bis fortgeschritten Buch empfehlen, also keine pure referenz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2146583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146583</guid><dc:creator><![CDATA[buntehaare]]></dc:creator><pubDate>Sun, 20 Nov 2011 13:17:46 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 13:24:59 GMT]]></title><description><![CDATA[<p>Zu diesem Thema ist Effective STL von Scott Meyers toll. Wenn du Meyers Effective C++ noch nicht hast, kannst Du Dir gleich beide besorgen. Letzteres ist absolute Pflichtlektüre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2146585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146585</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 20 Nov 2011 13:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 13:41:05 GMT]]></title><description><![CDATA[<p>vielen dank, für den buchvorschlag, werd ich mir wahrscheinlich besorgen, noch eine frage<br />
also wenn ich wie folgt:</p>
<pre><code class="language-cli">vector&lt;int&gt;v1(10);
vector&lt;int&gt;::iterator it;
it=v1.begin();

v1.insert(it,99);
</code></pre>
<p>ein elment eben auf der ersten position einfüge vergrössert sich der Vector mit der anzahl der elmente um eins da mit dem instert ein elment hineingeschoben wird, gibt es auch eine möglichkeit den wert an position des <code>it</code> zu ersetzen, also dass der wert den an pos <code>it</code> gestanden hat mit dem neuen ersezt wird und nicht dazwischengeschoben wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2146591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146591</guid><dc:creator><![CDATA[buntehaare]]></dc:creator><pubDate>Sun, 20 Nov 2011 13:41:05 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 13:48:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">vector&lt;int&gt;v1(10);
vector&lt;int&gt;::iterator it;
it=v1.begin();

*it = 99
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2146595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146595</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 20 Nov 2011 13:48:36 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 16:20:38 GMT]]></title><description><![CDATA[<p>aha ein iterator funktioniert also wirklich wie ein zeiger, danke!</p>
<p>kann man sich dann auch die Speicheraddresse der einzelnen Elmenete ausgeben lassen? denn mit &amp;it wird wohl nur die Addresse des Iterators selbst ausgegeben und nicht die des V1(vector&lt;int&gt;V1) elements?</p>
<p>aha also nur über &amp;V1[0] nicht über den Iterator selbst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2146641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146641</guid><dc:creator><![CDATA[buntehaare]]></dc:creator><pubDate>Sun, 20 Nov 2011 16:20:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 16:29:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25250">@buntehaare</a>: Ich hoffe, deine fürchterliche Grammatik und Rechtschreibung spiegelt sich in deinem Code nicht wider. Zum Glück gibt's da noch den Compiler...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2146651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146651</guid><dc:creator><![CDATA[Hinweiser]]></dc:creator><pubDate>Sun, 20 Nov 2011 16:29:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vectoren c++ verständnissfrage on Sun, 20 Nov 2011 18:16:54 GMT]]></title><description><![CDATA[<p>buntehaare schrieb:</p>
<blockquote>
<p>aha ein iterator funktioniert also wirklich wie ein zeiger, danke!</p>
<p>kann man sich dann auch die Speicheraddresse der einzelnen Elmenete ausgeben lassen? denn mit &amp;it wird wohl nur die Addresse des Iterators selbst ausgegeben und nicht die des V1(vector&lt;int&gt;V1) elements?</p>
<p>aha also nur über &amp;V1[0] nicht über den Iterator selbst?</p>
</blockquote>
<pre><code class="language-cpp">&amp;(*iter)
</code></pre>
<p>Und ja, ein Iterator ist im Prinzip nur ein mehr oder weniger intelligenter Zeiger. Bei std::vector wird das Verhalten bis auf Debug-Checks genau gleich sein, bei einer std::list muss der Iterator aber logischerweise mehr können.</p>
<p>Deswegen kannst du alle STL-Algorithmen auch mit Zeigern nutzen, probiers aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2146705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2146705</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sun, 20 Nov 2011 18:16:54 GMT</pubDate></item></channel></rss>