<?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[std::vector-Inhalt effizient in std::queue kopieren]]></title><description><![CDATA[<p>Hallo <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>Da gibt's doch sicher irgendwas aus der STL, nur die <a href="http://cppreference.com" rel="nofollow">cppreference.com</a> hilft mir da nicht weiter. Dort finde ich nur vector nach vector o.ä.</p>
<p>Und mit einer for-schleife Zeile für Zeile kopieren ist sicher nicht so der Hit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150873/std-vector-inhalt-effizient-in-std-queue-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 01:28:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150873.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Jun 2006 08:01:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 08:01:11 GMT]]></title><description><![CDATA[<p>Hallo <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>Da gibt's doch sicher irgendwas aus der STL, nur die <a href="http://cppreference.com" rel="nofollow">cppreference.com</a> hilft mir da nicht weiter. Dort finde ich nur vector nach vector o.ä.</p>
<p>Und mit einer for-schleife Zeile für Zeile kopieren ist sicher nicht so der Hit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081823</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Wed, 21 Jun 2006 08:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 08:04:08 GMT]]></title><description><![CDATA[<p>Für die Zusammenarbeit verschiedener Container gibt es Algorithmen (und für dich auch interessant: Inserter):</p>
<pre><code class="language-cpp">vector&lt;int&gt; vec;
deque&lt;int&gt; deq;
...

copy(vec.begin(),vec.end(),back_inserter(deq));
//oder:
deq.resize(vec.size());
copy(vec.begin(),vec.end(),deq.begin());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1081825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081825</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 21 Jun 2006 08:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 08:20:01 GMT]]></title><description><![CDATA[<p>Oder auch:</p>
<pre><code class="language-cpp">vector&lt;int&gt; vec;
...

deque&lt;int&gt; deq(vec.begin(),vec.end());
</code></pre>
<p>Wenn der deque (oder &quot;die deque&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ) erst instantiiert wird, wenn der vector bereits gefüllt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081840</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 21 Jun 2006 08:20:01 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 08:29:36 GMT]]></title><description><![CDATA[<p>Hallo,<br />
um mal Scott Meyers' zu zitieren: &quot;Prefer range member functions to their single-element counterparts&quot; (Effective STL - Item 5).</p>
<p>D.h. statt std::copy sollte man besser den Range-Ctor bzw. Range-Insert verwenden:</p>
<pre><code class="language-cpp">deq.insert(deq.end(), vec.begin(), vec.end());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1081852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081852</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Wed, 21 Jun 2006 08:29:36 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 08:45:29 GMT]]></title><description><![CDATA[<p>Geht das auch mit einer normalen queue? Copy kann nicht compiliert werden, weil die std::queue einige Methoden nicht hat, die copy braucht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081864</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Wed, 21 Jun 2006 08:45:29 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 08:56:56 GMT]]></title><description><![CDATA[<p>Delryn schrieb:</p>
<blockquote>
<p>Geht das auch mit einer normalen queue?</p>
</blockquote>
<p>Eine queue ist kein Container sondern lediglich ein Container-Adapter mit dem Nachteil, dass sie nicht über das Standard-Interface eines Containers verfügt. Um den copy-mit-inserter-Ansatz benutzen zu können musst du dir einen eigenen Inserter schreiben, der nicht insert (bzw. push_back) sondern push aufruft.</p>
<p>In etwa so (ungetestet):</p>
<pre><code class="language-cpp">template&lt;class Cont&gt;
class PushInsertIterator 
	: public std::iterator&lt;std::output_iterator_tag, typename Cont::value_type&gt; {
public:
  typedef Cont container_type;
  typedef typename Cont::value_type value_type;
  explicit PushInsertIterator(Cont&amp; x)
		: container_(x) {
	}
  PushInsertIterator&amp; operator=(const value_type&amp; val) {
		container_.push(val);
		return *this;
  }
  PushInsertIterator&amp; operator*() {
		return *this;
  }
  PushInsertIterator&amp; operator++() {
		return *this;
  }
  PushInsertIterator operator++(int) {
		return *this;
  }
private:
	Cont&amp; container_;
};

template &lt;class C&gt;
PushInsertIterator&lt;C&gt; pushInserter(C&amp; c) {
	return PushInsertIterator&lt;C&gt;(c);
}
</code></pre>
<p>Alternativ kannst du auch for_each zusammen mit einem passenden Prädikat verwenden. Ich würde in deinem Fall allerdings wohl einfach auf den Queue-Adapter verzichten und stattdessen gleich eine deque verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081874</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Wed, 21 Jun 2006 08:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 09:06:13 GMT]]></title><description><![CDATA[<p>HumeSikkins schrieb:</p>
<blockquote>
<p>Um den copy-mit-inserter-Ansatz benutzen zu können musst du dir einen eigenen Inserter schreiben, der nicht insert (bzw. push_back) sondern push aufruft.</p>
</blockquote>
<p>oder er benutzt den back_insert_iterator, denn der benutzt auch push_back (24.4.2.2.2).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081885</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 21 Jun 2006 09:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 09:17:55 GMT]]></title><description><![CDATA[<p>Also ich weiß ja nicht, da kann man wohl viel mit machen, aber so wirklich intuitiv ist das ganze ja nun wirklich nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081899</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Wed, 21 Jun 2006 09:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 09:18:37 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>Um den copy-mit-inserter-Ansatz benutzen zu können musst du dir einen eigenen Inserter schreiben, der nicht insert (bzw. push_back) sondern push aufruft.</p>
</blockquote>
<p>oder er benutzt den back_insert_iterator, denn der benutzt auch push_back (24.4.2.2.2).</p>
</blockquote>
<p>Inwieweit hilft mir das mit einer Queue, die ja nun eben gerade *keine* push_back-Methode besitzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081901</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Wed, 21 Jun 2006 09:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 09:36:30 GMT]]></title><description><![CDATA[<p>HumeSikkins schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>Um den copy-mit-inserter-Ansatz benutzen zu können musst du dir einen eigenen Inserter schreiben, der nicht insert (bzw. push_back) sondern push aufruft.</p>
</blockquote>
<p>oder er benutzt den back_insert_iterator, denn der benutzt auch push_back (24.4.2.2.2).</p>
</blockquote>
<p>Inwieweit hilft mir das mit einer Queue, die ja nun eben gerade *keine* push_back-Methode besitzt?</p>
</blockquote>
<p>err... gar nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> - ist auch irgendwie unintuitiv, dass sie queue kein push_back und pop_front spendiert haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081912</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 21 Jun 2006 09:36:30 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 09:51:01 GMT]]></title><description><![CDATA[<p>Ich würde sagen: Ändere dein Design.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081926</guid><dc:creator><![CDATA[we]]></dc:creator><pubDate>Wed, 21 Jun 2006 09:51:01 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 10:16:26 GMT]]></title><description><![CDATA[<p>Meine Aussage war allgemein auf die Benutzung von &lt;algorithm&gt; bezogen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1081951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1081951</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Wed, 21 Jun 2006 10:16:26 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 13:33:58 GMT]]></title><description><![CDATA[<p>Eigentlich ist es sehr intuitiv, aber man muss sich mit der STL erstmal auseinanderzusetzen um das Design zu verstehen <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/1082118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1082118</guid><dc:creator><![CDATA[Dr. Prof]]></dc:creator><pubDate>Wed, 21 Jun 2006 13:33:58 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 13:40:50 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>Um den copy-mit-inserter-Ansatz benutzen zu können musst du dir einen eigenen Inserter schreiben, der nicht insert (bzw. push_back) sondern push aufruft.</p>
</blockquote>
<p>oder er benutzt den back_insert_iterator, denn der benutzt auch push_back (24.4.2.2.2).</p>
</blockquote>
<p>Inwieweit hilft mir das mit einer Queue, die ja nun eben gerade *keine* push_back-Methode besitzt?</p>
</blockquote>
<p>err... gar nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> - ist auch irgendwie unintuitiv, dass sie queue kein push_back und pop_front spendiert haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Eine Queue ist ja auch kein Container im STL-Sinn, sondern ein Container-Adapter (das stellt eine FIFO-Warteschlange dar).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1082123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1082123</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 21 Jun 2006 13:40:50 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 14:24:43 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>Um den copy-mit-inserter-Ansatz benutzen zu können musst du dir einen eigenen Inserter schreiben, der nicht insert (bzw. push_back) sondern push aufruft.</p>
</blockquote>
<p>oder er benutzt den back_insert_iterator, denn der benutzt auch push_back (24.4.2.2.2).</p>
</blockquote>
<p>Inwieweit hilft mir das mit einer Queue, die ja nun eben gerade *keine* push_back-Methode besitzt?</p>
</blockquote>
<p>err... gar nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> - ist auch irgendwie unintuitiv, dass sie queue kein push_back und pop_front spendiert haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Eine Queue ist ja auch kein Container im STL-Sinn, sondern ein Container-Adapter (das stellt eine FIFO-Warteschlange dar).</p>
</blockquote>
<p>Fünf Stunden zuvor:</p>
<p>HumeSikkins schrieb:</p>
<blockquote>
<p>Delryn schrieb:</p>
<blockquote>
<p>Geht das auch mit einer normalen queue?</p>
</blockquote>
<p>Eine queue ist kein Container sondern lediglich ein Container-Adapter mit dem Nachteil, dass sie nicht über das Standard-Interface eines Containers verfügt.</p>
</blockquote>
<p>Irgendwie ist dieser Thread eigenartig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1082151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1082151</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Wed, 21 Jun 2006 14:24:43 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 14:31:40 GMT]]></title><description><![CDATA[<p>Im Normalfall würde ich Dir Recht geben HumeSikkins, aber <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-150853.html" rel="nofollow">heute</a> ist dieser Thread doch echt noch harmlos <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/1082156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1082156</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 21 Jun 2006 14:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 16:40:05 GMT]]></title><description><![CDATA[<p>der titel dreht sich um queue und dann kommt in den ersten posts nur deque, und ich überles nat. glatt den post von Hume (was nat. unklug ist, denn Hume würde sowas nicht vorschlagen, wenn es nicht notwendig wäre). egal. nur um noch mal kurz drauf zurückzukommen: ich habe nie verstanden was stack und queue in der standardbibliothek verloren haben - da ist kein gewinn an funktionalität oder bequemlichkeit. des standard interface für container wird ohne not aufgegeben. selbst basic_string leistet sich ja size und data memberfunktionen, obwohl es ebenfalls kein container ist. zugegeben, basic_string ist sowieso hoffnungslos überfrachtet - da kommt es dann evtl. nicht so drauf an. ich kann mir einfach nicht vorstellen, dass diese adapter irgendwo ernsthaft eingesetzt werden - statt dessen haben sie hash_map aus der STL herausamputiert und haben jetzt den ärger, das ding mit einem völlig ungewohnten namen bennen zu müssen.</p>
<p>egal, das wollte ich nur mal loswerden <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/1082265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1082265</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 21 Jun 2006 16:40:05 GMT</pubDate></item><item><title><![CDATA[Reply to std::vector-Inhalt effizient in std::queue kopieren on Wed, 21 Jun 2006 17:42:12 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>ich habe nie verstanden was stack und queue in der standardbibliothek verloren haben - da ist kein gewinn an funktionalität oder bequemlichkeit.</p>
</blockquote>
<p>Sehe ich genauso. In meinen Augen ein klassisches Beispiel für ein zu minimales Interface. Wirkt auf dem Papier zwar toll, in der realen Welt aber völlig unbrauchbar, da unhantlich zu bedienen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1082326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1082326</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Wed, 21 Jun 2006 17:42:12 GMT</pubDate></item></channel></rss>