<?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[Iteration über Vectoren]]></title><description><![CDATA[<p>Hallo, ich habe folgendes Problem:</p>
<p>Ich iteriere innerhalb meiner Klassenmethoden mehrfach über die gleichen Vektoren, was meiner Meinung nach ganz schön nach Redundanz stinkt.</p>
<p>ich habe also des öfteren das Konstrukt:</p>
<pre><code>for(vector&lt;Klasse&gt;::iterator foo = vektor1.begin(); foo &lt; vektor1.end(); foo++ )
{
    for(vector&lt;int&gt;::iterator bar = vektor2.begin(); bar &lt; vektor2.end(); bar++ )
    {
    // Sachen machen...
    }
}
</code></pre>
<p>Bei den Sachen mache ich aber unterschiedliche Sachen, nur um es einmal klarzustellen.</p>
<p>Jemand eine Idee, wie ich da mal die Redundanz vermeiden kann?</p>
<p>Besten Dank <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316115/iteration-über-vectoren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 09:36:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316115.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 22 Apr 2013 16:10:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Iteration über Vectoren on Mon, 22 Apr 2013 17:47:25 GMT]]></title><description><![CDATA[<p>Hallo, ich habe folgendes Problem:</p>
<p>Ich iteriere innerhalb meiner Klassenmethoden mehrfach über die gleichen Vektoren, was meiner Meinung nach ganz schön nach Redundanz stinkt.</p>
<p>ich habe also des öfteren das Konstrukt:</p>
<pre><code>for(vector&lt;Klasse&gt;::iterator foo = vektor1.begin(); foo &lt; vektor1.end(); foo++ )
{
    for(vector&lt;int&gt;::iterator bar = vektor2.begin(); bar &lt; vektor2.end(); bar++ )
    {
    // Sachen machen...
    }
}
</code></pre>
<p>Bei den Sachen mache ich aber unterschiedliche Sachen, nur um es einmal klarzustellen.</p>
<p>Jemand eine Idee, wie ich da mal die Redundanz vermeiden kann?</p>
<p>Besten Dank <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317464</guid><dc:creator><![CDATA[HackerNeo]]></dc:creator><pubDate>Mon, 22 Apr 2013 17:47:25 GMT</pubDate></item><item><title><![CDATA[Reply to Iteration über Vectoren on Mon, 22 Apr 2013 16:20:43 GMT]]></title><description><![CDATA[<p>Ich frage nochmal nach, da ich nicht sicher bin, alles verstanden zu haben. Du du hast folgendes?</p>
<pre><code>for(vector1...)
{
 for(vector2...)
 {
   // Mache Sachen A 
 }
}
for(vector1...)
{
 for(vector2...)
 {
   // Mache Sachen B 
 }
}
for(vector1...)
{
 for(vector2...)
 {
   // Mache Sachen C 
 }
}
</code></pre>
<p>Dann mach daraus</p>
<pre><code>for(vector1...)
{
 for(vector2...)
 {
   // Mache Sachen A, B und C
 }
}
</code></pre>
<p>Konkretere Antworten kannst du bekommen, wenn du den konkreten Fall beschreibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317469</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 22 Apr 2013 16:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to Iteration über Vectoren on Mon, 22 Apr 2013 16:21:10 GMT]]></title><description><![CDATA[<p>HackerNeo schrieb:</p>
<blockquote>
<p>Ich iteriere innerhalb meiner Klassenmethoden mehrfach über die <strong>gleichen</strong> Vektoren</p>
</blockquote>
<p>Warum hast du dann in deinem Beispiel verschiedene Vektoren?</p>
<p>HackerNeo schrieb:</p>
<blockquote>
<p>Bei den Sachen mache ich aber unterschiedliche Sachen, nur um es einmal klarzustellen.</p>
</blockquote>
<p>Kannst du etwas konkreter werden?</p>
<p>Wo genau ist die Redundanz? Bitte beschreibe dein Problem genauer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317471</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 22 Apr 2013 16:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to Iteration über Vectoren on Mon, 22 Apr 2013 17:24:24 GMT]]></title><description><![CDATA[<p>Ok. Also ich habe unterschiedliche Methoden, die alle unterschiedliche Sachen machen. Vektor1 stellt hier bei eine Klasse dar, der wiederum einen weiteren Vektor enthält (Vektor2).</p>
<p>Sagen wir mal, ich habe 4 Methoden und in allen 4 Methoden iteriere ich so, wie ich es geschrieben habe und führe in diesen Schleifen unterschiedliche Operationen auf den Daten aus.</p>
<p>Ist das genau genug? <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317487</guid><dc:creator><![CDATA[HackerNeo]]></dc:creator><pubDate>Mon, 22 Apr 2013 17:24:24 GMT</pubDate></item><item><title><![CDATA[Reply to Iteration über Vectoren on Mon, 22 Apr 2013 18:09:26 GMT]]></title><description><![CDATA[<p>Du könntest dir Funktionsobjekte anschauen. In C++11 kannst du dafür die Klasse <code>std::function</code> benutzen. Übrigens könntest du, falls dein Compiler das unterstützt, auch gleich die neue Schleife (Range Based For) einsetzen:</p>
<pre><code>void X::foreach(std::function&lt;void(int&amp;)&gt; fn)
{
    for (MyClass&amp; c : vec1) // vec1 ist std::vector&lt;MyClass&gt;
    {
        for (int&amp; i : c.ints) // c.ints ist std::vector&lt;int&gt;
        {
            fn(i);
        }
    }
}
</code></pre>
<p>Du kannst auch ein Template verwenden:</p>
<pre><code>template &lt;typename Function&gt;
void X::foreach(Function fn)
{
    ... // wie gehabt
}
</code></pre>
<p>Aufrufen kannst du das mit Funktionszeigern, Funktoren oder Lambda-Ausdrücken:</p>
<pre><code>void function(int&amp; i);

struct Functor
{
    void operator() (int&amp; i);
};

auto lambda = [] (int&amp; i) { ... };

// Aufrufe
foreach(&amp;function);
foreach(Functor());
foreach(lambda);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2317511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317511</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 22 Apr 2013 18:09:26 GMT</pubDate></item><item><title><![CDATA[Reply to Iteration über Vectoren on Mon, 22 Apr 2013 20:57:02 GMT]]></title><description><![CDATA[<p>Danke für den Beitrag <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="🙂"
    /></p>
<p>Gibt es auch eine Möglichkeit ohne C++11?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317556</guid><dc:creator><![CDATA[HackerNeo]]></dc:creator><pubDate>Mon, 22 Apr 2013 20:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to Iteration über Vectoren on Mon, 22 Apr 2013 20:57:59 GMT]]></title><description><![CDATA[<p>Ja, Code 2 und 3 kannst du bis auf Lambda-Ausdrücke auch in C++98 verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2317557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2317557</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 22 Apr 2013 20:57:59 GMT</pubDate></item></channel></rss>