<?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 arbeitet der std::vector intern ?]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie arbeitet der std::vector intern? Speichert er<br />
seine Daten in einem Array? Ich bin der Meinung<br />
schon weil man ja mit einem Index auf die Daten<br />
zugreifen kann. Aber wenn er mit einem Array<br />
intern arbeitet wie ist es dann wenn ich neue<br />
Elemente einfüge dann müsste ja immer ein neues<br />
Array angelegt werden und alle altenen Elemente<br />
darüberkopiert werden.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150587/wie-arbeitet-der-std-vector-intern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 18:23:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150587.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Jun 2006 11:29:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie arbeitet der std::vector intern ? on Sun, 18 Jun 2006 11:29:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie arbeitet der std::vector intern? Speichert er<br />
seine Daten in einem Array? Ich bin der Meinung<br />
schon weil man ja mit einem Index auf die Daten<br />
zugreifen kann. Aber wenn er mit einem Array<br />
intern arbeitet wie ist es dann wenn ich neue<br />
Elemente einfüge dann müsste ja immer ein neues<br />
Array angelegt werden und alle altenen Elemente<br />
darüberkopiert werden.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079958</guid><dc:creator><![CDATA[Profifachmann]]></dc:creator><pubDate>Sun, 18 Jun 2006 11:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Wie arbeitet der std::vector intern ? on Sun, 18 Jun 2006 11:33:40 GMT]]></title><description><![CDATA[<p>Lern lieber mal nachzudenken und öffne einfach den Header, da ist es ja implementiert. Btw natürlich mit Array, natürlich mit Kopieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079962</guid><dc:creator><![CDATA[Echter Profi]]></dc:creator><pubDate>Sun, 18 Jun 2006 11:33:40 GMT</pubDate></item><item><title><![CDATA[Reply to Wie arbeitet der std::vector intern ? on Sun, 18 Jun 2006 11:46:44 GMT]]></title><description><![CDATA[<p>Wobei nicht immer kopiert werden muss, da wenn man ein Element rauslöscht, dann verkleinert Vektor das Array nicht, sondern behält den Speicherplatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079967</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Sun, 18 Jun 2006 11:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wie arbeitet der std::vector intern ? on Sun, 18 Jun 2006 11:48:13 GMT]]></title><description><![CDATA[<p>bluecode schrieb:</p>
<blockquote>
<p>Wobei nicht immer kopiert werden muss, da wenn man ein Element rauslöscht, dann verkleinert Vektor das Array nicht, sondern behält den Speicherplatz.</p>
</blockquote>
<p>Ist dieser Container dann nicht sehr uneffektiv ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079968</guid><dc:creator><![CDATA[Profifachmann]]></dc:creator><pubDate>Sun, 18 Jun 2006 11:48:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wie arbeitet der std::vector intern ? on Sun, 18 Jun 2006 12:05:32 GMT]]></title><description><![CDATA[<p>Wenn ein std::vector sich vergrößern muß, holt er sich mehr Speicher als notwendig, um bei weiteren Vergrößerungen nicht wieder kopieren zu müssen.</p>
<p>Eine Strategie ist zum Beispiel den reservierten Speicher immer zu verdoppeln. Wenn du in so einen std::vector immer wieder mit push_back() neue Elemente dranhängst wird durchschnittlich jedes Element nur einmal kopiert. Dafür hat man aber einen höheren Speicherverbrauch, der aber höchstens doppelt so groß ist und durchschnittlich viel weniger.</p>
<p>Wenn dagegen bekannt ist, wieviele Elemente irgendwann in den std::vector rein sollen, kann man im voraus den Speicher mittels reserve() reservieren. Nun kann man die angegebene Anzahl an Elementen hinten dranfügen ohne einen höheren Speicherverbrauch oder unnütze Kopieraktionen befürchten zu müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1079975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1079975</guid><dc:creator><![CDATA[Ponto]]></dc:creator><pubDate>Sun, 18 Jun 2006 12:05:32 GMT</pubDate></item></channel></rss>