<?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[Wird vector::capacity() durch resize(0) beeinflusst?]]></title><description><![CDATA[<p>Hi!<br />
Ich muss 1 vector mit Daten in einer Schleife füllen (vom Anfang an kenne ich das Maximum der Anzahl der Daten). Nach der Schleife muss der vector geleert um später wieder erneut Daten zu füllen. Das Problem ist, dass ich nicht immer wieder Speicherplatz reservieren will wegen Geschwindigkeitsgründen. Der vector muss immer Speicherplatz für mindestens n Elemente haben. Hilft mir resize(0) dabei?<br />
Beispiel:</p>
<pre><code class="language-cpp">class x {
    vector&lt;d&gt; vd;
public:
    x(int n = 0) { vd.reserve(n); } // reserviere Speicherplatz wenn der User n kennt
void fill_vd() {
    /*...*/...vd.push_back(daten);.../*...*/
}
void process_and_reset() {
    /*...*/
    vd.resize(0); // wird capacity beeinflusst? oder nicht?
}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/208224/wird-vector-capacity-durch-resize-0-beeinflusst</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 15:45:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208224.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Mar 2008 15:03:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wird vector::capacity() durch resize(0) beeinflusst? on Sun, 16 Mar 2008 15:03:23 GMT]]></title><description><![CDATA[<p>Hi!<br />
Ich muss 1 vector mit Daten in einer Schleife füllen (vom Anfang an kenne ich das Maximum der Anzahl der Daten). Nach der Schleife muss der vector geleert um später wieder erneut Daten zu füllen. Das Problem ist, dass ich nicht immer wieder Speicherplatz reservieren will wegen Geschwindigkeitsgründen. Der vector muss immer Speicherplatz für mindestens n Elemente haben. Hilft mir resize(0) dabei?<br />
Beispiel:</p>
<pre><code class="language-cpp">class x {
    vector&lt;d&gt; vd;
public:
    x(int n = 0) { vd.reserve(n); } // reserviere Speicherplatz wenn der User n kennt
void fill_vd() {
    /*...*/...vd.push_back(daten);.../*...*/
}
void process_and_reset() {
    /*...*/
    vd.resize(0); // wird capacity beeinflusst? oder nicht?
}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1475272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475272</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Sun, 16 Mar 2008 15:03:23 GMT</pubDate></item><item><title><![CDATA[Reply to Wird vector::capacity() durch resize(0) beeinflusst? on Sun, 16 Mar 2008 15:38:35 GMT]]></title><description><![CDATA[<p>Überschreibe doch die alten Daten einfach.<br />
Dann bist du das Problem mit dem löschen und deine Sorge<br />
um die Performance los.<br />
Das geht natürlich nur reibungslos wenn die Anzahl der Datensätze<br />
immer konstant bleibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475298</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Sun, 16 Mar 2008 15:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wird vector::capacity() durch resize(0) beeinflusst? on Sun, 16 Mar 2008 15:38:37 GMT]]></title><description><![CDATA[<p>Der Speicher des Vectors wird durch das löschen von (allen) Elementen nicht freigegeben. Auch durch resize(..) wird der interne Speicher nicht freigegeben.<br />
Somit dürfte sich dein Problem gelöst haben.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475300</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Sun, 16 Mar 2008 15:38:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wird vector::capacity() durch resize(0) beeinflusst? on Sun, 16 Mar 2008 16:07:36 GMT]]></title><description><![CDATA[<p>Der einzige Weg, die Kapazität eines vectors zu verändern, ist der Einsatz von swap (streng genommen widerspricht sogar das dem Wortlaut des Standards, das ist aber ein Defekt, der im nächsten Standard korrigiert sein wird - nur so kann konstante Komplexität erreicht werden.). resize(0) gibt also keinen internen Speicher des vectors frei - clear() dürfte allerdings etwas klarer sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475317</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 16 Mar 2008 16:07:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wird vector::capacity() durch resize(0) beeinflusst? on Sun, 16 Mar 2008 16:47:47 GMT]]></title><description><![CDATA[<p>simon.gysi schrieb:</p>
<blockquote>
<p>Der Speicher des Vectors wird durch das löschen von (allen) Elementen nicht freigegeben. Auch durch resize(..) wird der interne Speicher nicht freigegeben.<br />
Somit dürfte sich dein Problem gelöst haben.<br />
Simon</p>
</blockquote>
<p>Ok, also clear() ist eine gute Lösung. Gott, vector ist aber geil!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1475333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1475333</guid><dc:creator><![CDATA[khalderon]]></dc:creator><pubDate>Sun, 16 Mar 2008 16:47:47 GMT</pubDate></item></channel></rss>