<?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[Pointer von Elementen aus einem vector]]></title><description><![CDATA[<p>Kann ich die Referenzen, die ich von einem vector mit der at() Methode bekomme einfach dereferenzieren?<br />
Ich bekomme leider immer wieder die gleiche Speicherstelle bei verschiedenen Objekten, das kommt mir irgentwie nicht ganz richtig vor.<br />
Wie kann man sowas am besten bewerkstelligen.<br />
Ich nutze das in einer for(auto i : vector) schleife, kann es sein, dass ich nur die Adresse des Interators bekomme, wenn ich &amp;i schreibe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/334721/pointer-von-elementen-aus-einem-vector</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 09:11:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/334721.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Oct 2015 19:33:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Mon, 05 Oct 2015 19:33:39 GMT]]></title><description><![CDATA[<p>Kann ich die Referenzen, die ich von einem vector mit der at() Methode bekomme einfach dereferenzieren?<br />
Ich bekomme leider immer wieder die gleiche Speicherstelle bei verschiedenen Objekten, das kommt mir irgentwie nicht ganz richtig vor.<br />
Wie kann man sowas am besten bewerkstelligen.<br />
Ich nutze das in einer for(auto i : vector) schleife, kann es sein, dass ich nur die Adresse des Interators bekomme, wenn ich &amp;i schreibe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469948</guid><dc:creator><![CDATA[Bengo]]></dc:creator><pubDate>Mon, 05 Oct 2015 19:33:39 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Mon, 05 Oct 2015 19:36:20 GMT]]></title><description><![CDATA[<p>Nein, du bekommst die Adresse der lokalen (Schleifen-)Variable.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469949</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 05 Oct 2015 19:36:20 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Mon, 05 Oct 2015 19:53:21 GMT]]></title><description><![CDATA[<p>Und wie komme ich an die Adresse der Elemente, wie sie im Vektor gespeichert sind?</p>
<p>Ich meine eigentlich bekomme ich von so einem Vektor doch Referenzen auf die eigentlichen Objekte. Wenn ich die referenziere, sollte ich doch einen zeiger das originalobjekt im Vektor bekommen, oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469951</guid><dc:creator><![CDATA[Bengo]]></dc:creator><pubDate>Mon, 05 Oct 2015 19:53:21 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Mon, 05 Oct 2015 20:18:33 GMT]]></title><description><![CDATA[<p>Bengo schrieb:</p>
<blockquote>
<p>Ich meine eigentlich bekomme ich von so einem Vektor doch Referenzen auf die eigentlichen Objekte.</p>
</blockquote>
<p>Ja, aber mit auto i bekommst du eine Kopie, wenn du die Referenz behalten willst, musst du auto&amp; i schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469953</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Mon, 05 Oct 2015 20:18:33 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Mon, 05 Oct 2015 20:28:59 GMT]]></title><description><![CDATA[<p>Bengo schrieb:</p>
<blockquote>
<p>Ich meine eigentlich bekomme ich von so einem Vektor doch Referenzen auf die eigentlichen Objekte. Wenn ich die referenziere, sollte ich doch einen zeiger das originalobjekt im Vektor bekommen, oder nicht?</p>
</blockquote>
<p>Nein. Bei</p>
<pre><code>for(auto i: dein_vector)
</code></pre>
<p>ist i eben keine Referenz auf die Elemente des vectors, sondern eine lokale Variable, deren Wert bei jedem Schleifendurchgang eine Kopie des jeweils nächsten Elements im vector wird. Über das i kommst du hier also gar nicht an die Adresse der Elemente im vector.</p>
<p>Es gibt natürlich viele andere Möglichkeiten, eine Schleife über alle Vectorelemente zu schreiben, bei der man problemlos an die Adressen kommt. Was genau am besten ist, hängt davon ab, was du warum genau erreichen möchtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469957</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 05 Oct 2015 20:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Tue, 06 Oct 2015 09:13:26 GMT]]></title><description><![CDATA[<p>Kann es sein, das du die Funktion &quot;data()&quot; suchst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2470007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2470007</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Tue, 06 Oct 2015 09:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Tue, 06 Oct 2015 09:54:35 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bengo schrieb:</p>
<blockquote>
<p>Ich meine eigentlich bekomme ich von so einem Vektor doch Referenzen auf die eigentlichen Objekte. Wenn ich die referenziere, sollte ich doch einen zeiger das originalobjekt im Vektor bekommen, oder nicht?</p>
</blockquote>
<p>Nein. Bei</p>
<pre><code>for(auto i: dein_vector)
</code></pre>
<p>ist i eben keine Referenz auf die Elemente des vectors, sondern eine lokale Variable, deren Wert bei jedem Schleifendurchgang eine Kopie des jeweils nächsten Elements im vector wird. Über das i kommst du hier also gar nicht an die Adresse der Elemente im vector.</p>
<p>Es gibt natürlich viele andere Möglichkeiten, eine Schleife über alle Vectorelemente zu schreiben, bei der man problemlos an die Adressen kommt. Was genau am besten ist, hängt davon ab, was du warum genau erreichen möchtest.</p>
</blockquote>
<p>Wie könnte den so eine Schleife aussehen?</p>
<pre><code>for(int i = 0; i &lt; vector.size(); ++i) {
&amp;vector.at[i]; 
}
</code></pre>
<p>funktionert leider auch nicht</p>
<p>bzw es funktionert schon, aber ich kann diese Adressen nicht in einem weiteren Vector speichern, weil die const sind, aber push_back keine const Wert will.</p>
<p>ElementWrapper.cpp:38:40: error: invalid conversion from ‘const EW* {aka const ElementWrapper*}’ to ‘std::vector&lt;ElementWrapper*&gt;::value_type {aka ElementWrapper*}’ [-fpermissive]<br />
links.push_back(adresse);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2470014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2470014</guid><dc:creator><![CDATA[Bengo]]></dc:creator><pubDate>Tue, 06 Oct 2015 09:54:35 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Tue, 06 Oct 2015 10:04:20 GMT]]></title><description><![CDATA[<p>Sollte aber funktionieren.<br />
Oder eben for(auto&amp; i : container)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2470017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2470017</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Tue, 06 Oct 2015 10:04:20 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Tue, 06 Oct 2015 12:23:56 GMT]]></title><description><![CDATA[<p>Ja ich musste meinen vector der Zeiter als vector&lt;const EW*&gt; deklarieren, dann hat es funktionert.</p>
<p>Heißt das eigentlich, dass ich die zeiger selbst nicht mehr ändern kann, oder dass ich auch durch diese Zeiger nichts mehr ändern kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2470037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2470037</guid><dc:creator><![CDATA[Bengo]]></dc:creator><pubDate>Tue, 06 Oct 2015 12:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Tue, 06 Oct 2015 13:45:45 GMT]]></title><description><![CDATA[<p>Nehmen wir mal den Ausdruck 'const int*' ausseinander oder besser, weil logischer, der gleichbedeutende 'int const *'. Das const kann vor oder hinter dem Typ stehen.:<br />
int -&gt; es handelt sich um einen Integer<br />
const -&gt; ..einen konstanten Integer<br />
* -&gt; ...einen Zeiger auf einen konstanten Integer.</p>
<p>So kannst du auch komplexere Ausdrücke erkennen, wie z.b. 'const int *const *&amp;const':<br />
'const int' bzw 'int const' -&gt; ein konstanter integer<br />
* -&gt; ...ein zeiger auf einen konstanten integer<br />
const -&gt; ein konstanter zeiger auf einen konstanten integer<br />
* -&gt; ein zeiger auf einen konstanter zeiger auf einen konstanten integer<br />
&amp; -&gt; eine referenz auf einen zeiger auf einen konstanter zeiger auf einen konstanten integer<br />
const -&gt; eine konstante referenz auf einen zeiger auf einen ein konstanter zeiger auf einen konstanten integer</p>
<p>...und so weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2470054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2470054</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Tue, 06 Oct 2015 13:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer von Elementen aus einem vector on Tue, 06 Oct 2015 17:35:36 GMT]]></title><description><![CDATA[<p>Ich möchte noch einmal meine subtile Frage im letzten Beitrag wiederholen, dieses mal etwas weniger subtil: Was soll das werden, wenn es fertig ist? Was genau willst du warum erreichen?</p>
<p>Momentan sieht es sehr danach aus, als würdest du eine komplizierte Lösung für ein sehr einfaches (oder gar bereits in der Standardbibliothek gelöstes) Problem konstruieren. Da du aber nur danach fragst, was du denkst, was dir auf dem Weg helfen könnte (und nicht, was der richtige Weg wäre), kann man dir nicht optimal helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2470092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2470092</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Oct 2015 17:35:36 GMT</pubDate></item></channel></rss>