<?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[probleme mit std::set&amp;lt;&amp;gt;::iterator]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>habe ein Problem mit dem Iterator von std::set&lt;type&gt;::iterator.</p>
<p>Hier mal ein kleines beispiel.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;map&gt;
#include &lt;set&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;sstream&gt;
#include &lt;iterator&gt;

using std::string;
using std::vector;
using std::set;

//string&amp; func(set&lt;string&gt;&amp; var)
string func(set&lt;string&gt; var)
{
   set&lt;string&gt;::iterator inc = var.begin();
   std::advance(inc,2);
   return *inc;
}

int main()
{
   set&lt;string&gt; tmp;
   tmp.insert(&quot;a&quot;);
   tmp.insert(&quot;b&quot;);
   tmp.insert(&quot;c&quot;);
   tmp.insert(&quot;d&quot;);
   tmp.insert(&quot;e&quot;);

   set&lt;string&gt;::iterator found = tmp.begin();
   std::advance(found,2);
   if(found != tmp.end())
   {
      std::cout &lt;&lt; &quot;gefundener bchstabe: &quot; &lt;&lt; *found &lt;&lt; std::endl;
   }
   string s1=*found;
   std::cout &lt;&lt; s1 &lt;&lt; std::endl;

   return 0;
}
</code></pre>
<p>Nun zu meinem Problem. Wenn ich den auskommentierten Funktionskopf einkommentiere bekomme ich lauter fehler? Warum ist das so? Warum kann ich die Elemente in der set-liste per iterator nicht ändern und als Referenz zurückgeben? Welchen typ gibt der iterator zurück wenn ich ihn dereferenziere?</p>
<p>Das wars erst mal.</p>
<p>MFG<br />
blups0r</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237846/probleme-mit-std-set-lt-gt-iterator</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 06:23:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237846.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Apr 2009 17:04:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to probleme mit std::set&amp;lt;&amp;gt;::iterator on Thu, 02 Apr 2009 17:04:35 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>habe ein Problem mit dem Iterator von std::set&lt;type&gt;::iterator.</p>
<p>Hier mal ein kleines beispiel.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;map&gt;
#include &lt;set&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;sstream&gt;
#include &lt;iterator&gt;

using std::string;
using std::vector;
using std::set;

//string&amp; func(set&lt;string&gt;&amp; var)
string func(set&lt;string&gt; var)
{
   set&lt;string&gt;::iterator inc = var.begin();
   std::advance(inc,2);
   return *inc;
}

int main()
{
   set&lt;string&gt; tmp;
   tmp.insert(&quot;a&quot;);
   tmp.insert(&quot;b&quot;);
   tmp.insert(&quot;c&quot;);
   tmp.insert(&quot;d&quot;);
   tmp.insert(&quot;e&quot;);

   set&lt;string&gt;::iterator found = tmp.begin();
   std::advance(found,2);
   if(found != tmp.end())
   {
      std::cout &lt;&lt; &quot;gefundener bchstabe: &quot; &lt;&lt; *found &lt;&lt; std::endl;
   }
   string s1=*found;
   std::cout &lt;&lt; s1 &lt;&lt; std::endl;

   return 0;
}
</code></pre>
<p>Nun zu meinem Problem. Wenn ich den auskommentierten Funktionskopf einkommentiere bekomme ich lauter fehler? Warum ist das so? Warum kann ich die Elemente in der set-liste per iterator nicht ändern und als Referenz zurückgeben? Welchen typ gibt der iterator zurück wenn ich ihn dereferenziere?</p>
<p>Das wars erst mal.</p>
<p>MFG<br />
blups0r</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690008</guid><dc:creator><![CDATA[blups0r]]></dc:creator><pubDate>Thu, 02 Apr 2009 17:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to probleme mit std::set&amp;lt;&amp;gt;::iterator on Thu, 02 Apr 2009 17:20:55 GMT]]></title><description><![CDATA[<p>In einem Set repräsentieren die Elemente die Schlüssel. Diese dürfen nicht geändert werden, da sonst die Sortierung zerstört würde. Da müsstest du ein Element entfernen und neu einfügen.</p>
<p>Übergibt besser eine Const-Referenz als eine Kopie. Ein ganzes Set zu kopieren ist nämlich meist eine schlechte Idee.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1690014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1690014</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 02 Apr 2009 17:20:55 GMT</pubDate></item></channel></rss>