<?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[STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt?]]></title><description><![CDATA[<p>Huhu,</p>
<p>mich interessiert, ab wann es gerechtfertigt ist zu sage: Mein STL Container beinhaltet viele Elemente. <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="😕"
    /><br />
Ich habe mal ein Video von Bjarne Stroustrup gesehen, in dem er gesagt hat, 10000 Elemente in einem <code>std::vector</code> seien wenig.</p>
<p>Damit hängt ja dann auch die Frage zusammen, ab wann ein Assoziative Container bemerkbar schneller ist, als der Defaultcontainer <code>std::vector</code> ?</p>
<p>Danke euch <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/305404/stl-container-ab-wann-ist-die-aussage-quot-große-menge-an-elementen-quot-gerechtfertigt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 23:23:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305404.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 28 Jun 2012 08:48:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 08:48:37 GMT]]></title><description><![CDATA[<p>Huhu,</p>
<p>mich interessiert, ab wann es gerechtfertigt ist zu sage: Mein STL Container beinhaltet viele Elemente. <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="😕"
    /><br />
Ich habe mal ein Video von Bjarne Stroustrup gesehen, in dem er gesagt hat, 10000 Elemente in einem <code>std::vector</code> seien wenig.</p>
<p>Damit hängt ja dann auch die Frage zusammen, ab wann ein Assoziative Container bemerkbar schneller ist, als der Defaultcontainer <code>std::vector</code> ?</p>
<p>Danke euch <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2228056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228056</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Thu, 28 Jun 2012 08:48:37 GMT</pubDate></item><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 08:54:17 GMT]]></title><description><![CDATA[<p>Das hängt würde ich sagen von der Größe ab. Wenn du nur Skalare Datentypen in deinem Container hälst, dann sind 10000 Elemente nicht viel. Wenn du dagegen andere, evt. große Klassen (mit vielen Membervariablen) darin hälst, dann ist es was anderes. Kommt immer auf die Situation an, wie effizient man gezwungen ist zu programmieren...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228059</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 28 Jun 2012 08:54:17 GMT</pubDate></item><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 09:03:41 GMT]]></title><description><![CDATA[<p>Das kommt darauf an, was man mit dem Container macht :p .</p>
<p>Deine Frage ist zu allgemein, daher ist so eine allgemeine Antwort wie &quot;viele&quot; oder &quot;groß&quot; das einzige, was man dir geben kann.</p>
<p>Du ungefähr abschätzen, wie groß die Datenmenge im Container so ist und dann vergleichen mit dem, was dein Computer sonst so macht. Hier kommen immer wieder Leute an, die 1000 Integer (also ein paar kB) für eine so große Menge halten, dass sie spezielle Algorithmen zur Verarbeitung brauchen. Dabei ist das eine Scherzmenge für einen heutigen Computer (oder jeden Computer der letzten 40 Jahre), die kleinsten Arbeitseinheiten sind normalerweise schon größer.</p>
<p>Du kannst auch über die Komplexität abschätzen, wie lange eine Aktion braucht. Bei vector und anderen Sequenzcontainern geht vieles mit O(N), bei assoziativen Containern oft mit O(log(N)), Details entnimmst du Referenzen. Dafür sind die Grundkonstanten bei den assoziativen Containern oftmals viel größer, so dass sie erst ab einer gewissen Füllmenge effektiver werden (Orientierunghilfe: ein paar Dutzend bis ein paar Hundert, aber wieder sehr stark abhängig davon was man überhaupt macht).</p>
<p>Also Erfahrungswerte:<br />
1. An Algorithmus angepasste Container benutzen statt einfach vector: Ab 10-100 Elementen.<br />
2. Den Algorithmus selbst an große Datenmengen anpassen: Wenn du mehr als 5-10 % des Hauptspeichers mit einer Datenstruktur belegst. Derzeit also ab ein paar hundert MB Daten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228066</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 28 Jun 2012 09:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 09:12:35 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Derzeit also ab ein paar hundert MB Daten.</p>
</blockquote>
<p>Dafür müsste man auf meinem Lappi bei einem <code>std::vector&lt;int&gt;</code> ja bei ca. 100 Millionen Elementen sein, das ist - ganz ohne Übertreibung - eine Wahnsinnsmenge :d</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228078</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 28 Jun 2012 09:12:35 GMT</pubDate></item><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 10:21:14 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Dafür müsste man auf meinem Lappi bei einem <code>std::vector&lt;int&gt;</code> ja bei ca. 100 Millionen Elementen sein, das ist - ganz ohne Übertreibung - eine Wahnsinnsmenge :d</p>
</blockquote>
<p>Nö. Eine große Menge <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>Eine Wahnisnnsmenge wäre etwas, wofür man Spezialrechner braucht. Zum Beispiel kannte ich jemanden der numerische Rechnungen auf einem Rechner mit 64 GB Arbeitsspeicher machte, als 1 GB Hauptspeicher noch als dickes Verkaufsargument beim Mediamarkt galt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228100</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 28 Jun 2012 10:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 14:23:58 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Ich habe mal ein Video von Bjarne Stroustrup gesehen, in dem er gesagt hat, 10000 Elemente in einem <code>std::vector</code> seien wenig.</p>
</blockquote>
<p>Ich halte die Aussage für Unsinn, weil es std::vector schlicht und ergreifend egal ist wie viel Elemente er hat. 10K sind also weder wenig noch viel &quot;für&quot; den vector. 10K Elemente die je 1 MB haben sind vermutlich viel, aber ganz egal davon wo man die ablegt. Und 10K Elemente die je 4 Byte haben sind halt nicht wirklich viel.</p>
<p>out schrieb:</p>
<blockquote>
<p>Damit hängt ja dann auch die Frage zusammen, ab wann ein Assoziative Container bemerkbar schneller ist, als der Defaultcontainer <code>std::vector</code> ?</p>
</blockquote>
<p>Wenn du map und (unsortierten) vector beim &quot;Lookup&quot; vergleichst (normaler Lookup in der map vs. lineare Suche im vector), dann wird map schon bei relativ wenig Elementen schneller, sagen wir so 10-20.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228177</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 28 Jun 2012 14:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 14:47:56 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>(normaler Lookup in der map vs. lineare Suche im vector)</p>
</blockquote>
<p>Der &quot;normale Lookup&quot; in einem (sortierten) assoziativen Container ist eine binäre Suche. Oder? <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/2228184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228184</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 28 Jun 2012 14:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to STL Container: Ab wann ist die Aussage &amp;quot;große Menge an Elementen&amp;quot; gerechtfertigt? on Thu, 28 Jun 2012 14:56:29 GMT]]></title><description><![CDATA[<p>Eine std::map verwendet einen Suchbaum, std::unordered_map eine Hashfunktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228185</guid><dc:creator><![CDATA[Ethon_]]></dc:creator><pubDate>Thu, 28 Jun 2012 14:56:29 GMT</pubDate></item></channel></rss>