<?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[Wie funktioniert die Zuweisung von std::vector&amp;lt;T&amp;gt;]]></title><description><![CDATA[<p>Wenn std::vector mit einer Klasse wie:</p>
<pre><code class="language-cpp">struct A
 double x;
 double y;
}
</code></pre>
<p>instantiiert wird, also so:</p>
<pre><code class="language-cpp">std::vector&lt;A&gt; v1;
// .. hier v1 mit As füllen
</code></pre>
<p>Was passiert bei einer Zuweisung dieses vectors zu einem anderen</p>
<pre><code class="language-cpp">std::vector&lt;A&gt; v2 = v1;
</code></pre>
<p>Wird dann eine flache Kopie gemacht? Es sind in der Klasse / Struct A keine Pointer und nur build-in Typen, die eigentlich leicht zu kopieren sind.<br />
Aus der doku <a href="http://www.cplusplus.com/reference/stl/vector/operator=/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/operator=/</a><br />
werd ich nicht ganz schlau:</p>
<blockquote>
<p>Assigns a copy of vector x as the new content for the vector object.</p>
<p>The elements contained in the vector object before the call are dropped, and replaced by copies of those in vector x, if any.</p>
</blockquote>
<p>Es gibt also Kopien von den A-Elementen und diese kopieren auch die Werte mit, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252692/wie-funktioniert-die-zuweisung-von-std-vector-lt-t-gt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 09:29:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252692.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Oct 2009 06:22:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie funktioniert die Zuweisung von std::vector&amp;lt;T&amp;gt; on Fri, 23 Oct 2009 06:24:01 GMT]]></title><description><![CDATA[<p>Wenn std::vector mit einer Klasse wie:</p>
<pre><code class="language-cpp">struct A
 double x;
 double y;
}
</code></pre>
<p>instantiiert wird, also so:</p>
<pre><code class="language-cpp">std::vector&lt;A&gt; v1;
// .. hier v1 mit As füllen
</code></pre>
<p>Was passiert bei einer Zuweisung dieses vectors zu einem anderen</p>
<pre><code class="language-cpp">std::vector&lt;A&gt; v2 = v1;
</code></pre>
<p>Wird dann eine flache Kopie gemacht? Es sind in der Klasse / Struct A keine Pointer und nur build-in Typen, die eigentlich leicht zu kopieren sind.<br />
Aus der doku <a href="http://www.cplusplus.com/reference/stl/vector/operator=/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/operator=/</a><br />
werd ich nicht ganz schlau:</p>
<blockquote>
<p>Assigns a copy of vector x as the new content for the vector object.</p>
<p>The elements contained in the vector object before the call are dropped, and replaced by copies of those in vector x, if any.</p>
</blockquote>
<p>Es gibt also Kopien von den A-Elementen und diese kopieren auch die Werte mit, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796845</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Fri, 23 Oct 2009 06:24:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wie funktioniert die Zuweisung von std::vector&amp;lt;T&amp;gt; on Fri, 23 Oct 2009 06:34:25 GMT]]></title><description><![CDATA[<p>ja natürlich. Soweit ich weiß, wird für jedes Element in vector A der Zuweisungsoperator bzw. kopierkonstruktor aufgerufen. Wenn du keinen eigenen op= definiert hast, generiert der compiler einen für dich und macht eine flache Kopie aller Werte / zeiger in deiner struct.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1796850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1796850</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Fri, 23 Oct 2009 06:34:25 GMT</pubDate></item></channel></rss>