<?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[Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich suche eine Funktion/einen Algorithmus, mitdem ich zwei (oder mehr) Container zusammenfassen kann:<br />
Es wird ein Container c erzeugt indem abwechselnd ein Element von Container a und ein Element von Container b eingefügt wird.<br />
Die Reihenfolge im Container c ist am Ende:</p>
<pre><code class="language-cpp">a1, b1, a2, b2, ...
</code></pre>
<p>Schön wäre auch, wenn man das auch mit drei/vier/... Containern machen könnte.<br />
Gibt es so eine Funktion/einen Algorithmus?<br />
Schon mal danke,<br />
Nathan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307383/suche-funktion-algorithmus-zum-zusammenfassen-von-containern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 19:01:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307383.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Aug 2012 13:49:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 13:49:47 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich suche eine Funktion/einen Algorithmus, mitdem ich zwei (oder mehr) Container zusammenfassen kann:<br />
Es wird ein Container c erzeugt indem abwechselnd ein Element von Container a und ein Element von Container b eingefügt wird.<br />
Die Reihenfolge im Container c ist am Ende:</p>
<pre><code class="language-cpp">a1, b1, a2, b2, ...
</code></pre>
<p>Schön wäre auch, wenn man das auch mit drei/vier/... Containern machen könnte.<br />
Gibt es so eine Funktion/einen Algorithmus?<br />
Schon mal danke,<br />
Nathan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245397</guid><dc:creator><![CDATA[NathanM]]></dc:creator><pubDate>Sat, 25 Aug 2012 13:49:47 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 14:30:09 GMT]]></title><description><![CDATA[<p>In der STL gibt es sowas nicht, aber der ist ja flott selbst geschrieben. Versuchs einfach mal. Tip: Wenn du nicht direkt ganze Container sondern Input-Iteratoren übergibst, könnte es besonders wiederverwendbar werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245399</guid><dc:creator><![CDATA[Dobi]]></dc:creator><pubDate>Sat, 25 Aug 2012 14:30:09 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 15:04:32 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;class InputIterator1, class InputIterator2,
          class OutputIterator&gt;
  OutputIterator merge_alternately ( InputIterator1 first1, InputIterator1 last1,
                                     InputIterator2 first2, InputIterator2 last2,
                                     OutputIterator result)
 {
        size_t ct(0);
        while(first1 != last1
          and first2 != last2)
                *result++ = (++ct % 2 ? *first1++ : *first2++);

        std::copy(first1, last1, result);
        std::copy(first2, last2, result);

        return result;
 }
</code></pre>
<p>Mal schnell gebastelt. Falls die Mengen nicht gleich groß sind, werden überschüssige Elemente angehängt, also muss im Output immer genug Platz für beide Mengen zusammen sein.<br />
Die Elemente des ersten Iteratorenpaars werden zuerst genommen (also ABAB und nicht BABA).</p>
<p>Edit:<br />
<strong><a href="http://ideone.com/DMbF4" rel="nofollow"><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Hier der Ideone Test.</a></strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245410</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 25 Aug 2012 15:04:32 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 15:26:36 GMT]]></title><description><![CDATA[<p>Hab auch einen netten Algorithmus gefunden:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
using namespace std;

void swap(vector&lt;int&gt;&amp; v, int i, int j)
{
	int t = v[i];
	v[i]  = v[j];
	v[j]  = t;
}

void in_place_algorithm(vector&lt;int&gt;&amp; v)
{
	int n = v.size()/2;	
	for ( int i = n-1; i &gt; 0; i-- )
		for ( int j = n-1; i+j&gt;=n; j-- )
			swap(v,j,i+j);
} 

int main()
{
	int ar[] = {1,3,5,7,9,2,4,6,8,0};
	vector&lt;int&gt; v(ar,ar+10);

	in_place_algorithm(v);

	for(int i=0; i&lt;v.size(); ++i)
		cout &lt;&lt; endl &lt;&lt; v[i];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2245415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245415</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 25 Aug 2012 15:26:36 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 15:34:22 GMT]]></title><description><![CDATA[<p>NathanM schrieb:</p>
<blockquote>
<p>Schön wäre auch, wenn man das auch mit drei/vier/... Containern machen könnte.</p>
</blockquote>
<p>Ich glaube, das Problem ist nicht wirklich trivial. Mal gespannt, ob hier jemand etwas dafür liefert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245416</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 25 Aug 2012 15:34:22 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 15:35:54 GMT]]></title><description><![CDATA[<p>Wäre doch mit variadic Templates und den den Iteratoren-Paaren als pair verpackt gut lösbar. Halt wie Hackers Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245418</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Sat, 25 Aug 2012 15:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 15:42:38 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Halt wie Hackers Lösung.</p>
</blockquote>
<p>*Sone <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>Ich habs btw gleich. Aber unschön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245422</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 25 Aug 2012 15:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 15:54:06 GMT]]></title><description><![CDATA[<p>Ja, so ging es mir auch.<br />
War unschön, klappt mit Ach und Krach.<br />
Also es gibt da nichts vordefiniertes, schade..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245424</guid><dc:creator><![CDATA[NathanM]]></dc:creator><pubDate>Sat, 25 Aug 2012 15:54:06 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 17:09:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;initializer_list&gt;
#include &lt;iterator&gt;
#include &lt;vector&gt;
#include &lt;iostream&gt;

template &lt;typename OutputIterator, typename Size, typename... InputIterator&gt;
OutputIterator zip_merge_n(OutputIterator out, Size n, InputIterator... in)
{
    for ( ; n--; )
        (void)std::initializer_list&lt;bool&gt;{ ( ( *out++ = *in++ ), false )... };
    return out;
}

int main()
{
    std::vector&lt;int&gt; a = { 1, 5, 10 }, b = { 23, 42, 87 };
    zip_merge_n( std::ostream_iterator&lt;int&gt;( std::cout, &quot;\t&quot;), a.size(), begin( a ), begin( b ) );
    std::cout &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2245444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245444</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sat, 25 Aug 2012 17:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 17:22:25 GMT]]></title><description><![CDATA[<p>Coole for-Schleife <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Ansonsten wohl die hammermäßigste Lösung, die man sich vorstellen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245449</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 25 Aug 2012 17:22:25 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 17:23:37 GMT]]></title><description><![CDATA[<p>Sone, was ist mit deinem gleich passiert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245450</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 25 Aug 2012 17:23:37 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 17:25:07 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Sone, was ist mit deinem gleich passiert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Meins kannste in die Tonne kicken ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245452</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sat, 25 Aug 2012 17:25:07 GMT</pubDate></item><item><title><![CDATA[Reply to Suche Funktion&#x2F;Algorithmus zum Zusammenfassen von Containern on Sat, 25 Aug 2012 18:08:27 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6642">@camper</a>:<br />
He, danke.<br />
Ist genau das, was ich gesucht habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2245457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2245457</guid><dc:creator><![CDATA[NathanM]]></dc:creator><pubDate>Sat, 25 Aug 2012 18:08:27 GMT</pubDate></item></channel></rss>