<?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[Über jedes n-teElement iterieren]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgenden Code:</p>
<pre><code>std::vector&lt;double&gt; v = { 1, 2, 3, 4, 5 };
size_t n = 2;	
for (auto it = v.begin(); it != v.end(); it += n) {
	std::cout &lt;&lt; *it &lt;&lt; '\n';
}
</code></pre>
<p>der mir allerdings um die Ohren fliegt, da ich über v.end() hinaus inkrementiere.</p>
<p>Wie kann man sowas am besten lösen? Also mir ist eingefallen dass man it in einer Schleife immer um 1 erhöhen könnte und nach jedem mal inkrementieren schauen, ob end erreicht wurde. Aber das ist ziemlich ineffizient nehme ich mal an? Gibt es noch bessere Möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327146/über-jedes-n-teelement-iterieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 18:17:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327146.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Jul 2014 13:51:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Über jedes n-teElement iterieren on Fri, 25 Jul 2014 13:51:32 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe folgenden Code:</p>
<pre><code>std::vector&lt;double&gt; v = { 1, 2, 3, 4, 5 };
size_t n = 2;	
for (auto it = v.begin(); it != v.end(); it += n) {
	std::cout &lt;&lt; *it &lt;&lt; '\n';
}
</code></pre>
<p>der mir allerdings um die Ohren fliegt, da ich über v.end() hinaus inkrementiere.</p>
<p>Wie kann man sowas am besten lösen? Also mir ist eingefallen dass man it in einer Schleife immer um 1 erhöhen könnte und nach jedem mal inkrementieren schauen, ob end erreicht wurde. Aber das ist ziemlich ineffizient nehme ich mal an? Gibt es noch bessere Möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410463</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Fri, 25 Jul 2014 13:51:32 GMT</pubDate></item><item><title><![CDATA[Reply to Über jedes n-teElement iterieren on Fri, 25 Jul 2014 13:59:48 GMT]]></title><description><![CDATA[<p>Du kannst auch die maximal mögliche Distanz direkt ermitteln.</p>
<pre><code>std::vector&lt;double&gt; v = { 1, 2, 3, 4, 5 };
size_t n = 2;	
for (auto it = v.begin(), end = v.end(); it != end; it += std::min( n, end - it )) {
	std::cout &lt;&lt; *it &lt;&lt; '\n';
}
</code></pre>
<p>Wenn es öfter gebraucht wird, sollte man evtl. darüber nachdenken, gleich einen entsprechenden stride-iterator-Adapter zu verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410464</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 25 Jul 2014 13:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to Über jedes n-teElement iterieren on Fri, 25 Jul 2014 14:19:40 GMT]]></title><description><![CDATA[<p>Mir fällt noch</p>
<pre><code>auto it = v.begin();
auto iterations = (v.size() + n - 1) / n;
while (iterations--)
{
    // […]
    it += n;
}
</code></pre>
<p>ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410466</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Fri, 25 Jul 2014 14:19:40 GMT</pubDate></item><item><title><![CDATA[Reply to Über jedes n-teElement iterieren on Fri, 25 Jul 2014 15:02:23 GMT]]></title><description><![CDATA[<p>Schau mal, ob <a href="http://www.cplusplus.com/reference/valarray/slice/slice/" rel="nofollow">http://www.cplusplus.com/reference/valarray/slice/slice/</a> besser passt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410481</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 25 Jul 2014 15:02:23 GMT</pubDate></item><item><title><![CDATA[Reply to Über jedes n-teElement iterieren on Fri, 25 Jul 2014 15:34:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;double&gt; v = { 1, 2, 3, 4, 5 };
size_t n = 2;
for (auto i : v | boost::adaptors::strided(n))
    std::cout &lt;&lt; i &lt;&lt; '\n';
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2410484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410484</guid><dc:creator><![CDATA[Boo[st]yeah]]></dc:creator><pubDate>Fri, 25 Jul 2014 15:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to Über jedes n-teElement iterieren on Fri, 25 Jul 2014 15:35:47 GMT]]></title><description><![CDATA[<p>Edit:</p>
<pre><code class="language-cpp">#include &lt;boost/range/adaptor/strided.hpp&gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2410485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410485</guid><dc:creator><![CDATA[Boo[st]yeah]]></dc:creator><pubDate>Fri, 25 Jul 2014 15:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to Über jedes n-teElement iterieren on Fri, 25 Jul 2014 17:47:33 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Vorschläge, dacht ich mir doch dass es besser geht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410501</guid><dc:creator><![CDATA[happystudent]]></dc:creator><pubDate>Fri, 25 Jul 2014 17:47:33 GMT</pubDate></item></channel></rss>