<?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[Frage zum vector der STL]]></title><description><![CDATA[<p>Hallo,</p>
<p>meine Frage bezieht sich auf den Umgang mit einem Iterator. Ist es erlaubt, in einer Schleife, die ich mit dem Iterator durchlaufe, weitere Schleifen einzusetzen? Zu gebrauchen wäre dies zB dann, wenn ich große Vectoren nach bestimmten Daten abfragen möchte.<br />
Also in der Form:</p>
<pre><code>for (std::vector&lt;int&gt;::iterator it = myvector.begin() ; it != myvector.end(); ++it)
{
    std::cout &lt;&lt; ' ' &lt;&lt; *it;
    while(it-&gt;get_name() == &quot;x&quot;)
    {
    ...
    it++;
    }

  std::cout &lt;&lt; '\n';

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/324857/frage-zum-vector-der-stl</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 11:13:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324857.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Apr 2014 20:34:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum vector der STL on Fri, 04 Apr 2014 20:34:25 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>meine Frage bezieht sich auf den Umgang mit einem Iterator. Ist es erlaubt, in einer Schleife, die ich mit dem Iterator durchlaufe, weitere Schleifen einzusetzen? Zu gebrauchen wäre dies zB dann, wenn ich große Vectoren nach bestimmten Daten abfragen möchte.<br />
Also in der Form:</p>
<pre><code>for (std::vector&lt;int&gt;::iterator it = myvector.begin() ; it != myvector.end(); ++it)
{
    std::cout &lt;&lt; ' ' &lt;&lt; *it;
    while(it-&gt;get_name() == &quot;x&quot;)
    {
    ...
    it++;
    }

  std::cout &lt;&lt; '\n';

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2392887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392887</guid><dc:creator><![CDATA[StefanieSch.]]></dc:creator><pubDate>Fri, 04 Apr 2014 20:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum vector der STL on Fri, 04 Apr 2014 20:58:36 GMT]]></title><description><![CDATA[<p>Kein Problem. Allerdings prüfst Du in dem Beispiel nicht, ob die innere Schleife das Ende des Vektors erreicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392889</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 04 Apr 2014 20:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum vector der STL on Fri, 04 Apr 2014 21:10:57 GMT]]></title><description><![CDATA[<p>Hallo Belli,</p>
<p>danke dir. Ja, prüfen müsste ich es dann mit</p>
<pre><code>while(it != namen.end()-1 &amp;&amp; it-&gt;get_name() == &quot;x&quot; )
</code></pre>
<p>Also ein Element vor dem Ende abfangen. Oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392892</guid><dc:creator><![CDATA[StefanieSch.]]></dc:creator><pubDate>Fri, 04 Apr 2014 21:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum vector der STL on Fri, 04 Apr 2014 21:18:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich verstehe dein Vorhaben nicht so recht. Wenn du die Elemente des Vektors nach bestimmten Strukturen abfragen möchtest, dann hört sich das eher nach einer if Abfrage an:</p>
<pre><code class="language-cpp">for(auto it = myvector.begin(); it != myvector.end(); ++it)
{
  if( it -&gt; get_name() == &quot;x&quot; )
    // do something
}
</code></pre>
<p>Vielleicht solltest du präziser beschreiben was du vorhast, bevor wir uns hier in Details verrennen.</p>
<p>Gruß,<br />
-- Klaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392893</guid><dc:creator><![CDATA[Klaus82]]></dc:creator><pubDate>Fri, 04 Apr 2014 21:18:28 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum vector der STL on Fri, 04 Apr 2014 21:35:51 GMT]]></title><description><![CDATA[<p>Hallo Klaus,</p>
<p>ja, if-Abfragen kommen viele vor. Jedoch möchte ich den Iterator im Vector immer wieder hoch- und runterfahren, um dann mit einer if-Abfrage entsprechende Reaktionen ausführen zu können. Beispiel:</p>
<p>Der Vector hat die Namen:</p>
<p>Magnus<br />
Adam<br />
Alex<br />
Steffi<br />
...</p>
<p>Sie kommen öfter vor und in verschiedener Reihenfolge. Nun möchte ich den Vector immer wieder komplett durchlaufen und nach jeweils einem bestimmten Namen abfragen, um diesen dann in vollständiger Anzahl in einer Textdatei auszugeben.</p>
<p>Das Resultat soll dann sein:</p>
<p>Magnus<br />
Magnus</p>
<p>Adam<br />
Adam<br />
Adam</p>
<p>etc.</p>
<p>Deswegen schicke ich den Iterator vom Anfang bis zum Ende. Danach wieder zum Anfang und durchlaufe den Vector wieder. Deshalb war es für mich praktisch, einfach while-Schleifen innerhalb der for-Schleife einzusetzen. Das klappt auch gut. Wollte nur wissen, ob das in Ordnung ist. Die Beispiele, die ich mir angesehen habe, hatten innerhalb der for-Schleife niemals weitere while-Schleifen. Deswegen hatte ich die Befürchtung, dass das ggf. nicht erlaubt sei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392894</guid><dc:creator><![CDATA[StefanieSch]]></dc:creator><pubDate>Fri, 04 Apr 2014 21:35:51 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum vector der STL on Fri, 04 Apr 2014 21:55:14 GMT]]></title><description><![CDATA[<p>Also so?</p>
<pre><code>#include &lt;vector&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
  vector&lt;string&gt; names = {
    &quot;Alfons&quot;,
    &quot;Magnus&quot;,
    &quot;Steffi&quot;,
    &quot;Alex&quot;,
    &quot;Magnus&quot;,
    &quot;Alfons&quot;,
    &quot;Adam&quot;,
    &quot;Magnus&quot;,
    &quot;Steffi&quot;,
    &quot;Alfons&quot;,
    &quot;Adam&quot;,
    &quot;Alfons&quot;,
    &quot;Adam&quot;,
    &quot;Magnus&quot;,
    &quot;Alfons&quot;,
    &quot;Adam&quot;};

  for(auto it1 = names.begin(); it1 != names.end(); ++it1)
    {
      cout &lt;&lt; &quot;Suche nach allen weiteren Vorkommen von &quot; &lt;&lt; *it1 &lt;&lt; &quot;:\n&quot;;
      for (auto it2 = it1 + 1; it2 != names.end(); ++it2)
        {
          if (*it1 == *it2)
            cout &lt;&lt; &quot;Gefunden: &quot; &lt;&lt; *it2 &lt;&lt; '\n';
        }
      cout &lt;&lt; '\n';
    }
 }
</code></pre>
<p>Ja, das ist moeglich, wie du siehst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392900</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 04 Apr 2014 21:55:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum vector der STL on Fri, 04 Apr 2014 21:58:03 GMT]]></title><description><![CDATA[<p>Halo SeppJ,</p>
<p>ja, genau. Danke dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392901</guid><dc:creator><![CDATA[StefanieSch.]]></dc:creator><pubDate>Fri, 04 Apr 2014 21:58:03 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum vector der STL on Mon, 07 Apr 2014 07:57:05 GMT]]></title><description><![CDATA[<p>Eine Map könnte hier noch praktisch sein</p>
<pre><code class="language-cpp">map&lt;string,int&gt; histogramm(vector&lt;string&gt; const&amp; sv)
{
    map&lt;string,int&gt; result;
    for (auto&amp; s : sv) {
        ++result[s];
    }
    return result;
}
</code></pre>
<p>Mir ist allerdings die Aufgabenstellung nicht 100%ig klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2393118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2393118</guid><dc:creator><![CDATA[kkaw]]></dc:creator><pubDate>Mon, 07 Apr 2014 07:57:05 GMT</pubDate></item></channel></rss>