<?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[Schnell und dynamisch Werte speichern]]></title><description><![CDATA[<p>Habe noch eine kurze aber dringende Frage:<br />
In einer zeitkritischen Funktion hole ich nacheinander 384 Datenwerte.<br />
Diese Werte werden in ein unsigned short int array gespeichert.<br />
Ich würde gerne diese werde einem dynamischen Array (CArray) übergeben.<br />
Wie mache ich das am Geschicktesten, denn ich nutze eine Schleife zum wiederholten Lesen der Daten und es wird immer das gleiche Array benutzt?</p>
<p>Ich habe bisher:</p>
<pre><code class="language-cpp">for (int i=0; i&lt;384; i++)
    CarrayObject.Add(DatenArray[i]);
</code></pre>
<p>Es würde doch sicherlich schneller gehen, wenn ich doch gleich komplett das Array kopieren könnte, oder nicht? Doch wie mache ich das?<br />
CArray&lt;unsigned short int&gt; DatenArray; habe ich jetzt. Wie muss ich das ändern?<br />
Bei CArray&lt;unsigned short int*&gt; würde ich doch nur immer wieder dieselbe Adresse von DatenArray speichern oder sehe ich das falsch?<br />
(Irgendwie habe ich das Gefühl, soetwas Grundlegendes sollte ich eigentlich wissen...)</p>
<p>MfG,<br />
Paul.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140545/schnell-und-dynamisch-werte-speichern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 03:01:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140545.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Mar 2006 15:35:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Wed, 15 Mar 2006 15:36:14 GMT]]></title><description><![CDATA[<p>Habe noch eine kurze aber dringende Frage:<br />
In einer zeitkritischen Funktion hole ich nacheinander 384 Datenwerte.<br />
Diese Werte werden in ein unsigned short int array gespeichert.<br />
Ich würde gerne diese werde einem dynamischen Array (CArray) übergeben.<br />
Wie mache ich das am Geschicktesten, denn ich nutze eine Schleife zum wiederholten Lesen der Daten und es wird immer das gleiche Array benutzt?</p>
<p>Ich habe bisher:</p>
<pre><code class="language-cpp">for (int i=0; i&lt;384; i++)
    CarrayObject.Add(DatenArray[i]);
</code></pre>
<p>Es würde doch sicherlich schneller gehen, wenn ich doch gleich komplett das Array kopieren könnte, oder nicht? Doch wie mache ich das?<br />
CArray&lt;unsigned short int&gt; DatenArray; habe ich jetzt. Wie muss ich das ändern?<br />
Bei CArray&lt;unsigned short int*&gt; würde ich doch nur immer wieder dieselbe Adresse von DatenArray speichern oder sehe ich das falsch?<br />
(Irgendwie habe ich das Gefühl, soetwas Grundlegendes sollte ich eigentlich wissen...)</p>
<p>MfG,<br />
Paul.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016885</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Wed, 15 Mar 2006 15:36:14 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Thu, 16 Mar 2006 07:45:12 GMT]]></title><description><![CDATA[<p>Muß es unbedingt ein CArray sein? Wenn es dir nur auf ein &quot;dynamisches Array&quot; ankommt, würde ich eher die STL bemühen (aber das ist meine persönliche Meinung ;)):</p>
<pre><code class="language-cpp">vector&lt;unsigned short&gt; Daten(384);
copy(Array,Array+384,Daten.begin());
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1017261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017261</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 16 Mar 2006 07:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Thu, 16 Mar 2006 07:50:51 GMT]]></title><description><![CDATA[<p>Hört sich interessant an... <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="🙂"
    /><br />
Nein, es muss kein CArray sein, benutze ich nur üblicherweise, da ich mit den noch weniger Erfahrung habe. Wusste nicht dass man beim Vektor direkt die Größe mit angeben kann. Scheint also genau das zu sein, was ich gesucht habe. Vielen Dank.<br />
Falls ich Probleme habe, dann melde ich mich wieder (wie immer).</p>
<p>MfG,<br />
Paul.<br />
<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/1017264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017264</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Thu, 16 Mar 2006 07:50:51 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Thu, 16 Mar 2006 08:11:14 GMT]]></title><description><![CDATA[<p>Paul_C. schrieb:</p>
<blockquote>
<p>Wusste nicht dass man beim Vektor direkt die Größe mit angeben kann.</p>
</blockquote>
<p>Ja, bei einem Vektor kann man einiges <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="😉"
    /> (warte mal noch einen Monat, dann kommt hoffentlich mein Artikel über die STL)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017277</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 16 Mar 2006 08:11:14 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Thu, 16 Mar 2006 08:17:49 GMT]]></title><description><![CDATA[<p>Sehr schön. Ich bin mit ein wenig C/C++ - Erfahrung direkt in die WinAPI/MFC-Programmierung gerutscht und scheine in einigen Sachen noch Nachholbedarf zu haben. Man lernt halt nie aus!<br />
<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>Paul.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017280</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Thu, 16 Mar 2006 08:17:49 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Thu, 16 Mar 2006 14:12:39 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Muß es unbedingt ein CArray sein? Wenn es dir nur auf ein &quot;dynamisches Array&quot; ankommt, würde ich eher die STL bemühen (aber das ist meine persönliche Meinung ;)):</p>
<pre><code class="language-cpp">vector&lt;unsigned short&gt; Daten(384);
copy(Array,Array+384,Daten.begin());
</code></pre>
</blockquote>
<p>Muss das eigentlich nicht</p>
<pre><code class="language-cpp">copy(Array,Array+384*sizeof(unsigned short),Daten.begin());
</code></pre>
<p>heißen?</p>
<p><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>
<p>--- Vergeßt es! <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="🤡"
    /> ----</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017565</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Thu, 16 Mar 2006 14:12:39 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Thu, 16 Mar 2006 14:32:47 GMT]]></title><description><![CDATA[<p>Und wie kann ich den vector als membervariable haben und nachträglich die 384 da mit reinbringen?<br />
Denn er kann es ja nicht in einer Klasse definieren.<br />
Ist das dasselbe, wenn ich reserve nehme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017580</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Thu, 16 Mar 2006 14:32:47 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Thu, 16 Mar 2006 16:14:07 GMT]]></title><description><![CDATA[<p>du musst</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
</code></pre>
<p>machen und dann halt einfach ne Membervariable in der Klasse anlegen.<br />
Die Anzahl kannst du dann dem Konstrukor in der Initialisierungsliste mit übergeben.<br />
Ach ja die Headerdatei wirst du auch mit in der HEaderdatei deiner Klasse einbinden müssen, weil Template. Aber den namespace würde ich erst in der cpp aushebeln, falls das erwünscht ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017680</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Thu, 16 Mar 2006 16:14:07 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Fri, 17 Mar 2006 06:36:44 GMT]]></title><description><![CDATA[<p>? Sorry, kann dir nicht ganz folgen.<br />
Ja, also den vector habe ich ja schon.<br />
Es ging mir nur darum, dass ich nicht weiß, ob</p>
<pre><code class="language-cpp">vector&lt;unsigned short&gt; Daten(384);  // Vorschlag von CSToll -&gt; Problem mit Konstante (384)
</code></pre>
<p>==</p>
<pre><code class="language-cpp">vector&lt;unsigned short&gt; Daten;    // in Header-Datei
Daten.reserve(384);    // in cpp-Datei
</code></pre>
<p>ist?</p>
<p>MfG,<br />
Paul.</p>
<p>P.S.: Bin aber auch bald soweit, dass ich es auch einfach testen kann. <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="🤡"
    /><br />
P.S.S: Lese gerade nochmal deinen Post: Du meinst also, ich könnte im Konstruktor einfach</p>
<pre><code class="language-cpp">Constructor(.......)
, Daten(384)
{
}
</code></pre>
<p>schreiben?</p>
<p>Und was meinst du genau mit aushebeln?</p>
<p>P.S.S.S: Ich glaube, ich benötige dringend Koffeinkonsum! <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/1017989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017989</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Fri, 17 Mar 2006 06:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Fri, 17 Mar 2006 08:15:59 GMT]]></title><description><![CDATA[<p>Der vector ist im namespace std. Da du eine Membervariable willst, benötigst du vector schon in der h-Datei. Dort sollst du lieber std::vector schreiben, anstatt ein using namespace zu machen, weil namespace soll man nicht in einer h-Datei umgehen, erst in der cpp.</p>
<pre><code class="language-cpp">Constructor(.......)
, Daten(384)
</code></pre>
<p>Das habe ich gemeint.<br />
Wenn du an den Konstruktor von vector ne Anzahl übergibst, werden so viele Objkete schon im Container angelegt mit einem Aufruf des Standardkonstruktors des jeweiligen Typs(bei dir ja int, also eh egal).</p>
<pre><code class="language-cpp">Daten.reserve(384);
</code></pre>
<p>Das ist was anderes! Hier wird physischer Speicherplatz reserviert. Also intern legt der in deinem Fall ein Feld an, was min 384 ints aufnehmen kann. Die logische Länge des vectors ändert sich dagegen nicht!!!<br />
Im Gegensatz zu der Konstruktorvariangte, hier werde wirklich 384 logische Elemente angelegt.</p>
<p>Wenn du als das resereve benutzt, kannst du den copy-Befehl so nicht benutzen, sondern musst die Objkete mit push_back an den vector anfügen.</p>
<p>Zum Grundproblem: CArray hat bestimmt garantiert auch so einen reserve-Befehl auch wenn er vieleicht anders heißt. Von daher denke ich nicht, dass CArray jetzt so viel langsamer als vector sein soll^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1018016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018016</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Fri, 17 Mar 2006 08:15:59 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Fri, 17 Mar 2006 08:29:34 GMT]]></title><description><![CDATA[<p>Danke für die ausführliche Erklärung! <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="👍"
    /><br />
Ja, ich habe std::vector... schon in der Header-Datei. Wieso sollte man das eigentlich nicht da mit namespace machen? Was ist der Grund?</p>
<p>Ok, nun habe ich dann Daten(384) stehen, also 384 vector Objekte.<br />
Wie würde ich die einzeln ansprechen? Daten[1], Daten[2]? (nicht, dass ich das unbedingt müsste, nur aus Neugier)<br />
Entweder stehe ich voll auf dem Schlauch, oder ich ralle es noch nicht ganz?!?</p>
<p>Ja, CArray hat einen ähnlichen Befehl, aber darum ging es mir nicht. Es ging mir nur darum, wie ich am schnellsten den Speicher kopiere und da hat mir CSToll so geholfen. <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>MfG,<br />
Paul.</p>
<p><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/1018026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018026</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Fri, 17 Mar 2006 08:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Fri, 17 Mar 2006 08:40:57 GMT]]></title><description><![CDATA[<p>Paul_C. schrieb:</p>
<blockquote>
<p>Danke für die ausführliche Erklärung! <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="👍"
    /><br />
Ja, ich habe std::vector... schon in der Header-Datei. Wieso sollte man das eigentlich nicht da mit namespace machen? Was ist der Grund?</p>
</blockquote>
<p>Stell dir mal vor, jemand anders bindet deine h-Datei ein. Dadurch wird in seinen Dateien auch automatisch der namespace ausgehebelt, ohne das er was dagegen machen kann. Wenn er das nun garnicht wollte ... ?</p>
<p>Paul_C. schrieb:</p>
<blockquote>
<p>Ok, nun habe ich dann Daten(384) stehen, also 384 vector Objekte.<br />
Wie würde ich die einzeln ansprechen? Daten[1], Daten[2]? (nicht, dass ich das unbedingt müsste, nur aus Neugier)<br />
Entweder stehe ich voll auf dem Schlauch, oder ich ralle es noch nicht ganz?!?</p>
</blockquote>
<p>Jo genau wie bei CArray. Mit dem []-Operator greifst du auf die Elemente zu, natürlich beginnend bei 0 <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="🤡"
    /> . Achtung: bei [] findet kein interner Test statt, ob du über das Feld hinausgeshcossen bist. Bei vector::at dagegen werden erst die Feldindizes geprüft und bei einem Fehler ne out_of_range geschmissen.</p>
<p>Paul_C. schrieb:</p>
<blockquote>
<p>Ja, CArray hat einen ähnlichen Befehl, aber darum ging es mir nicht. Es ging mir nur darum, wie ich am schnellsten den Speicher kopiere und da hat mir CSToll so geholfen. <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>
</blockquote>
<p>Besorg dir nen Iterator für CArray, dabb kannst hier auch das copy anwenden <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>MfG,<br />
Paul.</p>
<p>;)[/quote]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1018031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018031</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Fri, 17 Mar 2006 08:40:57 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Fri, 17 Mar 2006 09:42:08 GMT]]></title><description><![CDATA[<p>Pellaeon schrieb:</p>
<blockquote>
<p>Jo genau wie bei CArray. Mit dem []-Operator greifst du auf die Elemente zu, natürlich beginnend bei 0 <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="🤡"
    /> . Achtung: bei [] findet kein interner Test statt, ob du über das Feld hinausgeshcossen bist.</p>
</blockquote>
<p>Ein wenig Programmierung kannst du mir schon zutrauen. <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>Danke, nochmal für die Erklärungen. Auf die Idee, dass jemand meine Headerdatei bin ich nicht gekommen, da es nicht dafür gedacht ist. Ist aber einleuchtend.</p>
<p>MfG,<br />
Paul.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1018061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018061</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Fri, 17 Mar 2006 09:42:08 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Fri, 17 Mar 2006 15:33:03 GMT]]></title><description><![CDATA[<p>Paul_C. schrieb:</p>
<blockquote>
<p>Ja, CArray hat einen ähnlichen Befehl, aber darum ging es mir nicht. Es ging mir nur darum, wie ich am schnellsten den Speicher kopiere und da hat mir CSToll so geholfen. <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>MfG,<br />
Paul.</p>
<p><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>Ähm das Copy tut aber auch nur Elementweise kopieren!!!<br />
Durch CStolls Vorgehen hast du doppelten Aufwand. Erst werden 384 Elemente mit 0 initialisiert, nur dass sie danach gleich wieder überschrieben werden.<br />
Die Variante mit reserve und push_back ist also schneller, auch wenn es sich bei der geringen Anzahl(und dann auch nur ints und keine großen Objekte) nicht wirklich bemerkbar machen dürfte.</p>
<p>Insert und Assign kommen auch noch in Frage, da sparst du dir dann das reserve, das macht dann automatisch der Container.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1018443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1018443</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Fri, 17 Mar 2006 15:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Mon, 20 Mar 2006 06:36:19 GMT]]></title><description><![CDATA[<p>Also, sollte ich nun doch besser</p>
<pre><code class="language-cpp">std::vector&lt;unsigned short&gt;Daten;
Daten.reserve(384);
...
Daten.pushback(irgendwas);
</code></pre>
<p>schreiben?!</p>
<p><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/1020044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1020044</guid><dc:creator><![CDATA[Paul_C.]]></dc:creator><pubDate>Mon, 20 Mar 2006 06:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Schnell und dynamisch Werte speichern on Mon, 20 Mar 2006 10:38:31 GMT]]></title><description><![CDATA[<p>push_back haut nur 1 Element ans Ende des Vectors, das copy kopiert für dich das ganze Feld. Also müsste das ganze wieder in eine for-Schleife</p>
<p>copy könnte wie folgt implementiert sein</p>
<pre><code class="language-cpp">while (first != last) *result++ = *first++;
</code></pre>
<p>Die Variablen sind die Iteratoren. Hab ich ausm STL-Buch grad abgeschrieben.<br />
Du siehst, das ist elementweises kopieren udn es wird davon ausgegangen, dass der Ergebniscontainer entsprechend groß ist, also muss dieser schon genug Element haben, welche dann überschrieben werden.</p>
<p>Oder du nimmst das insert</p>
<pre><code class="language-cpp">vec.insert(vec.end(),DatenArray,DatenArray + 384);
</code></pre>
<p>Das wäre wohl das beste. Füge alle Elemente DatenArray bis DatenArray + 384 vor dem Ende des vectors ein.<br />
Wohl gemerkt hier wird nichts überschrieben! Es gibt nur pro Element einen Aufruf des Copy-Kontruktors und so sparst du dir den Standardkonstruktor, der im copy nötig ist, weil du das Feld dort ja per Hand erstmal auf die entsprechende Länge setzen musst.<br />
Also wenn im Vector Elemente sind die du nicht mehr brauchst, kannst du die vorher mit clear() rausschmeißen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1020171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1020171</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 20 Mar 2006 10:38:31 GMT</pubDate></item></channel></rss>