<?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[Das Kopieren von structs]]></title><description><![CDATA[<p>Hallo,<br />
ich will nicht nerven, aber ich habe weiterhin ein Problem mit der copy()-Funktion. Zwar lassen sich mit ihr einwandfrei strings kopieren jedoch keine structs. Taugt die die copy()-Funktion überhaupt für structs oder muss ich mich da anderer Algorithmen bedienen (wüsste aber nicht welche…)?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145024/das-kopieren-von-structs</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 21:25:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145024.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Apr 2006 09:20:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 09:20:12 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich will nicht nerven, aber ich habe weiterhin ein Problem mit der copy()-Funktion. Zwar lassen sich mit ihr einwandfrei strings kopieren jedoch keine structs. Taugt die die copy()-Funktion überhaupt für structs oder muss ich mich da anderer Algorithmen bedienen (wüsste aber nicht welche…)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043811</guid><dc:creator><![CDATA[Alexander Rahm]]></dc:creator><pubDate>Mon, 24 Apr 2006 09:20:12 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 09:22:23 GMT]]></title><description><![CDATA[<p>Um ordentlich kopiert werden zu können, benötigt ein Typ einen operator= (den mußt du nur selber schreiben, wenn der Default-Operator nicht richtig arbeitet (betrifft vor allem Pointer-Elemente) oder nicht erzeugt werden kann (bei const Elementen oder Referenzen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043813</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 24 Apr 2006 09:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 11:24:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>der copy Algorithmus ist NICHT für's Kopieren von <strong>einzelnen</strong> Strukturen oder Klassen gedacht. Hm, ist glaub das erste mal, das einer mit der Idee kommt^^ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Für's Überladen des =op siehe auch:</p>
<p><a href="http://tutorial.schornboeck.net/operatoren_ueberladung.htm" rel="nofollow">http://tutorial.schornboeck.net/operatoren_ueberladung.htm</a><br />
<a href="http://tutorial.schornboeck.net/bigthree.htm" rel="nofollow">http://tutorial.schornboeck.net/bigthree.htm</a></p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043816</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Mon, 24 Apr 2006 11:24:57 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 11:15:02 GMT]]></title><description><![CDATA[<p>GPC schrieb:</p>
<blockquote>
<p>der copy Algorithmus ist NICHT für's Kopieren von Strukturen oder Klassen gedacht. Hm, ist glaub das erste mal, das einer mit der Idee kommt^^ <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Wo steht den so was? Natürlich lassen sich Strukturen oder Klassen mit copy kopieren, bzw. Array von Klassen oder Container von Klassen.</p>
<p>So zum Beispiel:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;iostream&gt;

struct A
{
  int a;
  int b;
};

int main()
{
  A aa[10];
  for (int i = 0; i &lt; 10; ++i)
  {
    aa[i].a = i + i;
    aa[i].b = i * i;
  }

  A bb[10];
  std::copy(aa, aa + 19, bb);

  for (int i = 0; i &lt; 10; ++i)
  {
    std::cout &lt;&lt; bb[i].a &lt;&lt; '\t' &lt;&lt; bb[i].b &lt;&lt; '\n';
  }
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1043874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043874</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Mon, 24 Apr 2006 11:15:02 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 11:24:08 GMT]]></title><description><![CDATA[<p>Nu seid doch nicht so spitzfindig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9578">@tntnet</a>: Du kopierst keine Struktur oder Klasse, sondern ein Array von Strukturen. Was GPC andeuten wollte ist dass copy für <strong>Container</strong> von X gedacht ist. Eine einzelne Struktur kann ich mit copy jedenfalls nicht kopieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043879</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 24 Apr 2006 11:24:08 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 11:27:40 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9578">@tntnet</a><br />
ähem, das ist mir schon klar, aber wenn es dich beruhigt: ich meinte eine einzelne Struktur wird über den =op kopiert und nicht über den copy Algo.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043880</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Mon, 24 Apr 2006 11:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 12:01:01 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<pre><code class="language-cpp">A aa[10];
  // ...
  std::copy(aa, aa + 19, bb);
</code></pre>
</blockquote>
<p>Machts Spaß in fremdem Speicher umzustochern?</p>
<p>LordJaxom: Eine einzelne Struktur kann ich kopieren, indem der zweite Parameter einen Iteratorschritt hinter dem ersten Parameter ist, also</p>
<pre><code class="language-cpp">std::copy(aa, aa + 1, bb);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1043924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043924</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 24 Apr 2006 12:01:01 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 12:09:55 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>LordJaxom: Eine einzelne Struktur kann ich kopieren, indem der zweite Parameter einen Iteratorschritt hinter dem ersten Parameter ist, also</p>
<pre><code class="language-cpp">std::copy(aa, aa + 1, bb);
</code></pre>
</blockquote>
<p>Ja, wenn du unbedingt mit Kanonen auf Spatzen schißen willst, hält dich niemand auf (ich würde ja noch eine temporäre Variable verwenden, in der ich den Wert zwischenlagere <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    />)</p>
<p>Aber copy() ruft intern auch nur op= für jedes Element der kopierten Sequenz auf, also kommst du bestimmt nicht darum herum, den Zuweisungsoperator zu implementieren.<br />
(außer natürlich der vorgegebene op= macht tatsächlich das, was du benötigst)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043934</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 24 Apr 2006 12:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 12:18:02 GMT]]></title><description><![CDATA[<p>...und wenn ich garkein Array habe darf ich auch noch rumadressieren (davon ab dass wie CStoll schon sagte die Voraussetzungen, nämlich der op=, gleich bleiben)</p>
<pre><code class="language-cpp">std::copy(&amp;aa, &amp;aa + 1, &amp;bb);
</code></pre>
<p>Das meinte ich übrigens mit spitzfindig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043941</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 24 Apr 2006 12:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to Das Kopieren von structs on Mon, 24 Apr 2006 12:42:04 GMT]]></title><description><![CDATA[<p>Ich hab nur hierauf Stellung bezogen:</p>
<blockquote>
<p>Eine einzelne Struktur kann ich mit copy jedenfalls nicht kopieren</p>
</blockquote>
<p>Is mir klar, dass das einen operator= voraussetzt. Sag ich ja auch nix dagegen. Meinen Code würd ich so auch nicht schreiben, es geht darum, dass copy allgemeingültig ist und nicht ersetzt werden muss, wenn ein Array mal nur aus einem Element besteht (und man das unter Umständen nicht zur Kompilierzeit weiß).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1043970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1043970</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 24 Apr 2006 12:42:04 GMT</pubDate></item></channel></rss>