<?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[Listen-Iterator Zugriff auf bestimmtes Element]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine std::list&lt;int[2]&gt; liste und will auf ein bestimmtes element mittels zeiger (iterator) zugreifen und dort den ersten bzw. den zweiten feldeintrag auslesen.</p>
<p>bei einfachen std::list&lt;int&gt; geht das ja mittels</p>
<p>for (std::list&lt;int&gt;::iterator iter=liste.begin(); iter != liste.end(); ++iter)<br />
{<br />
}</p>
<p>wobei in jedem schritt *iter für den Listenplatz steht. Wie greif ich da auf ein 2d integer-listenelement zu?</p>
<p>Gibt mir bitte idealerweise eine Antwort mit dem datentyp und verweist da nicht auf std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325558/listen-iterator-zugriff-auf-bestimmtes-element</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 08:19:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325558.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 May 2014 23:48:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Listen-Iterator Zugriff auf bestimmtes Element on Wed, 07 May 2014 23:48:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine std::list&lt;int[2]&gt; liste und will auf ein bestimmtes element mittels zeiger (iterator) zugreifen und dort den ersten bzw. den zweiten feldeintrag auslesen.</p>
<p>bei einfachen std::list&lt;int&gt; geht das ja mittels</p>
<p>for (std::list&lt;int&gt;::iterator iter=liste.begin(); iter != liste.end(); ++iter)<br />
{<br />
}</p>
<p>wobei in jedem schritt *iter für den Listenplatz steht. Wie greif ich da auf ein 2d integer-listenelement zu?</p>
<p>Gibt mir bitte idealerweise eine Antwort mit dem datentyp und verweist da nicht auf std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398003</guid><dc:creator><![CDATA[Hammerstein]]></dc:creator><pubDate>Wed, 07 May 2014 23:48:12 GMT</pubDate></item><item><title><![CDATA[Reply to Listen-Iterator Zugriff auf bestimmtes Element on Thu, 08 May 2014 00:07:03 GMT]]></title><description><![CDATA[<p>Du kannst kein rohes Array in eine Liste (oder sonst einen Container) packen, da Arraytypen keine Wertsemantik haben. Das wird beim Compilieren krachen. Und zwar nicht erst beim Zugriff, sondern schon bei der Definition einer solchen Liste. Hast du denn nie versucht, deinen Code zu übersetzen?</p>
<p>Lösung: Nimm std::array als inneren Datentyp. Der Zugriff erfolgt dann wie man es erwarten würde: Wenn du auf ein Element aus der Liste zugreifst (egal ob über einen Iterator oder sonst irgendwie) erhältst du etwas vom Typ array&lt;int, 2&gt;. Und da drauf kannst du dann mit dessen Methoden wieder auf die Unterelemente zugreifen (also unter anderem operator[]). Das lässt sich einfach aneinander hängen, z.B. <code>(*iter)[1]</code> .</p>
<p>Etwas, über das du noch nachdenken solltest: Verkettete Listen sind in der Praxis oft verpönt und kommen eigentlich nur im Informatikunterricht vor. Sie sind extrem langsam im Vergleich zu anderen Containern, außer du benutzt sehr, sehr oft ihre eine starke Seite<sup>*</sup>: Einfügen und Entfernen von Teillisten in der Mitte. Tust du das wirklich? Du wärst so ziemlich der erste Mensch mit diesem Bedürfnis, dem ich begegne. Siehe:<br />
<a href="http://stackoverflow.com/questions/10699265/how-can-i-efficiently-select-a-standard-library-container-in-c11" rel="nofollow">http://stackoverflow.com/questions/10699265/how-can-i-efficiently-select-a-standard-library-container-in-c11</a></p>
<p><sup>*</sup>: Man könnte auch noch anführen, dass die Adresse von Elementen sich nicht verändert, aber das bekommt man auch leicht mit einer Kombination von anderen Containern hin, z.B. einem vector von Smartpointern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398004</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 08 May 2014 00:07:03 GMT</pubDate></item><item><title><![CDATA[Reply to Listen-Iterator Zugriff auf bestimmtes Element on Thu, 08 May 2014 07:31:30 GMT]]></title><description><![CDATA[<p>Ich hab ihn übersetzen lassen, aber es ergab keinen Fehler. Nur Iterator konnte nicht zugreifen. Ich probier deinen Ansatz gleich mal aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398038</guid><dc:creator><![CDATA[Hammerstein]]></dc:creator><pubDate>Thu, 08 May 2014 07:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to Listen-Iterator Zugriff auf bestimmtes Element on Thu, 08 May 2014 16:11:30 GMT]]></title><description><![CDATA[<p>Hammerstein schrieb:</p>
<blockquote>
<p>Ich hab ihn übersetzen lassen, aber es ergab keinen Fehler.</p>
</blockquote>
<p>Code und Compiler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2398143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2398143</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 08 May 2014 16:11:30 GMT</pubDate></item></channel></rss>