<?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[STL list-iterator-Problem]]></title><description><![CDATA[<p>Ich stehe gerade auf der Leitung. Ich habe eine Liste</p>
<pre><code>list&lt;ExternalIOLib&gt; m_libList
</code></pre>
<p>Eine Methode soll mir dann einzelne Elemente der Liste zurückliefern:</p>
<pre><code>ExternalIOLib *ExternalIOLibs::getLib(bool start)
{
   static list&lt;ExternalIOLib&gt;::iterator it;

   if (start) it=m_libList.begin();
   return *it++;
}
</code></pre>
<p>Und das klappt nicht, der Teil nach return fliegt mir beim Compilieren um die Ohren: &quot;cannot convert from 'class ExternalIOLib' to 'class ExternalIOLib *'&quot;</p>
<p>Was mache ich falsch, wie bekomme ich aus dem Iterator einen Pointer auf das Element?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260409/stl-list-iterator-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 02:27:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260409.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Feb 2010 19:04:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL list-iterator-Problem on Thu, 04 Feb 2010 19:04:35 GMT]]></title><description><![CDATA[<p>Ich stehe gerade auf der Leitung. Ich habe eine Liste</p>
<pre><code>list&lt;ExternalIOLib&gt; m_libList
</code></pre>
<p>Eine Methode soll mir dann einzelne Elemente der Liste zurückliefern:</p>
<pre><code>ExternalIOLib *ExternalIOLibs::getLib(bool start)
{
   static list&lt;ExternalIOLib&gt;::iterator it;

   if (start) it=m_libList.begin();
   return *it++;
}
</code></pre>
<p>Und das klappt nicht, der Teil nach return fliegt mir beim Compilieren um die Ohren: &quot;cannot convert from 'class ExternalIOLib' to 'class ExternalIOLib *'&quot;</p>
<p>Was mache ich falsch, wie bekomme ich aus dem Iterator einen Pointer auf das Element?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1850618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850618</guid><dc:creator><![CDATA[TomoT]]></dc:creator><pubDate>Thu, 04 Feb 2010 19:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to STL list-iterator-Problem on Thu, 04 Feb 2010 19:17:47 GMT]]></title><description><![CDATA[<p>Entweder du änderst den Rückgabetyp der Methode:</p>
<pre><code class="language-cpp">ExternalIOLib ExternalIOLibs::getLib(bool start)
{
    // wie vorher 
}
</code></pre>
<p>oder du speicherst Zeiger in der Liste, anstatt der Objekte:</p>
<pre><code class="language-cpp">std::list&lt;ExternalIOLib*&gt; libList;
// ...
std::list&lt;ExternalIOLib*&gt;::iterator iter;
// ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1850621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850621</guid><dc:creator><![CDATA[such dir was aus]]></dc:creator><pubDate>Thu, 04 Feb 2010 19:17:47 GMT</pubDate></item><item><title><![CDATA[Reply to STL list-iterator-Problem on Thu, 04 Feb 2010 20:58:45 GMT]]></title><description><![CDATA[<p>Japp das klappt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> Allerdings liefert mir der Iterator am Ende der Liste keine NULL sondern Datenmüll. Muss ich da selber mitzählen ob noch Elemente da sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1850663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850663</guid><dc:creator><![CDATA[TomoT]]></dc:creator><pubDate>Thu, 04 Feb 2010 20:58:45 GMT</pubDate></item><item><title><![CDATA[Reply to STL list-iterator-Problem on Thu, 04 Feb 2010 21:03:34 GMT]]></title><description><![CDATA[<p>Bei Iteratoren musst du auf <code>end()</code> des Containers prüfen. Wenn der Vergleich mit <code>operator==</code>  <code>true</code> zurückgibt, bist du am Ende angelangt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1850665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850665</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 04 Feb 2010 21:03:34 GMT</pubDate></item><item><title><![CDATA[Reply to STL list-iterator-Problem on Thu, 04 Feb 2010 21:22:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ExternalIOLib* ExternalIOLibs::getLib(bool start)
{
//   static list&lt;ExternalIOLib&gt;::iterator it;
//   wenn die Liste ein member ist, dürfte das auch für einen persistenten Iterator richtig sein

   if (start)
       m_it=m_libList.begin();
   return m_it != m_libList.end() ? &amp;*it++ : 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1850669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1850669</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 04 Feb 2010 21:22:01 GMT</pubDate></item></channel></rss>