<?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[map auch schnell bei kleiner Anzahl?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich will int,int Tupel speichern. Der 1. Wert ist eine Art Schlüssel und der 2. das Attribut. Jetzt bietet sich dafür natürlich eine map&lt;int,int&gt; an.<br />
Der Punkt ist nur: Es werden zu 99% sehr wenige Paare sein (so 3 oder 4 Stück meistens).</p>
<p>Die Frage: Wenn ich so wenige Werte in der map habe, ist dann map überhaupt noch effizient? Bei myMap[key] = value; wird ja mit O(logn) gesucht und wenn ich einen vector&lt; pair&lt;int,int&gt; &gt; hätte, könnte ich linear O(n) nach dem Key suchen. Nur bei so wenigen Werten, könnte die lineare Suche ja effektiv schneller sein.</p>
<p>Kurz: Ist auch bei wenigen Werten map schneller beim einfügen und überschreiben oder ist dann ein vector besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295387/map-auch-schnell-bei-kleiner-anzahl</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 11:18:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295387.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Nov 2011 12:29:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 12:29:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich will int,int Tupel speichern. Der 1. Wert ist eine Art Schlüssel und der 2. das Attribut. Jetzt bietet sich dafür natürlich eine map&lt;int,int&gt; an.<br />
Der Punkt ist nur: Es werden zu 99% sehr wenige Paare sein (so 3 oder 4 Stück meistens).</p>
<p>Die Frage: Wenn ich so wenige Werte in der map habe, ist dann map überhaupt noch effizient? Bei myMap[key] = value; wird ja mit O(logn) gesucht und wenn ich einen vector&lt; pair&lt;int,int&gt; &gt; hätte, könnte ich linear O(n) nach dem Key suchen. Nur bei so wenigen Werten, könnte die lineare Suche ja effektiv schneller sein.</p>
<p>Kurz: Ist auch bei wenigen Werten map schneller beim einfügen und überschreiben oder ist dann ein vector besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143917</guid><dc:creator><![CDATA[performer2]]></dc:creator><pubDate>Sun, 13 Nov 2011 12:29:53 GMT</pubDate></item><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 12:36:58 GMT]]></title><description><![CDATA[<p>Hört sich so an, als ob du die 99% in die map stecken solltest und nicht die Paare.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143921</guid><dc:creator><![CDATA[terraformer]]></dc:creator><pubDate>Sun, 13 Nov 2011 12:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 12:40:11 GMT]]></title><description><![CDATA[<p>terraformer schrieb:</p>
<blockquote>
<p>Hört sich so an, als ob du die 99% in die map stecken solltest und nicht die Paare.</p>
</blockquote>
<p>Versteh ich nicht. Ein Key hat einen Value. Es sind eben immer Paare. Und ganz ganz selten ändert sich der Value eines Keys.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143922</guid><dc:creator><![CDATA[performer2]]></dc:creator><pubDate>Sun, 13 Nov 2011 12:40:11 GMT</pubDate></item><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 13:14:36 GMT]]></title><description><![CDATA[<p>Im Zweifelsfall immer Ausprobieren (und zwar am echten Programm, nicht an einem Testprogramm nur für diesen einen Vergleich), da immer viele Faktoren eine Rolle spielen. Wenn du wissen willst, welches Ergebnis ich erwarte: Ich schätze der Vektor wird deutlich schneller sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143938</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 13 Nov 2011 13:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 13:16:49 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Im Zweifelsfall immer Ausprobieren (und zwar am echten Programm, nicht an einem Testprogramm nur für diesen einen Vergleich), da immer viele Faktoren eine Rolle spielen. Wenn du wissen willst, welches Ergebnis ich erwarte: Ich schätze der Vektor wird deutlich schneller sein.</p>
</blockquote>
<p>Habs befürchtet. Zeitmessungen sind halt immer recht aufwändig (um wirklich verlässliche Daten zu haben und nicht nur Stichproben).</p>
<p>Tippe aber auch, dass der Vektor schneller ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143939</guid><dc:creator><![CDATA[performer2]]></dc:creator><pubDate>Sun, 13 Nov 2011 13:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 13:21:14 GMT]]></title><description><![CDATA[<p>Das sollte die lineare Suche im vector gewinnen. Aber das kann man ja ganz einfach ausprobieren.<br />
Edit: ausprobiert, 4 Elemente: vector&lt;pair&lt;int,int&gt;&gt; : map&lt;int,int&gt; = 31 ms : 39 ms</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143940</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 13 Nov 2011 13:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 13:50:48 GMT]]></title><description><![CDATA[<p>performer2 schrieb:</p>
<blockquote>
<p>Der Punkt ist nur: Es werden zu 99% sehr wenige Paare sein (so 3 oder 4 Stück meistens).</p>
</blockquote>
<p>Und bei 1% sehr viele Paare, so 1000000 Stück?</p>
<p>performer2 schrieb:</p>
<blockquote>
<p>Die Frage: Wenn ich so wenige Werte in der map habe, ist dann map überhaupt noch effizient? Bei myMap[key] = value; wird ja mit O(logn) gesucht und wenn ich einen vector&lt; pair&lt;int,int&gt; &gt; hätte, könnte ich linear O(n) nach dem Key suchen. Nur bei so wenigen Werten, könnte die lineare Suche ja effektiv schneller sein.</p>
</blockquote>
<p>Unbedeutend. Die map könnte 4 Speicherzugriffe brauchen, wo der vector einen braucht. Das bißchen Vergleichen und Zeigerentlanghangeln, dorfte nichtz schlimm sein. Ich tippe mal unte ungünstigen Bedingungen Faktor 5 für den vector.<br />
Beim Lesen. Und beim Ändern der Werte, wenn die keys sich nicht ändern.</p>
<p>Beim Einfügen ist das ganz anders, da kackt die map völlig ab. Aber Du sagtest ja, daß Du sehr selten was änderst.</p>
<p>Ich würde dem vector bis 20 keys durchaus trauen und bis 50 würde ich ohne schlechtes Gewissen ausnahmsweise in Kauf nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143946</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 13 Nov 2011 13:50:48 GMT</pubDate></item><item><title><![CDATA[Reply to map auch schnell bei kleiner Anzahl? on Sun, 13 Nov 2011 14:21:49 GMT]]></title><description><![CDATA[<p>performer2 schrieb:</p>
<blockquote>
<p>terraformer schrieb:</p>
<blockquote>
<p>Hört sich so an, als ob du die 99% in die map stecken solltest und nicht die Paare.</p>
</blockquote>
<p>Versteh ich nicht. Ein Key hat einen Value. Es sind eben immer Paare. Und ganz ganz selten ändert sich der Value eines Keys.</p>
</blockquote>
<p>Na, ich dachte du hast 100000 solche Paare.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2143956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2143956</guid><dc:creator><![CDATA[terraformer]]></dc:creator><pubDate>Sun, 13 Nov 2011 14:21:49 GMT</pubDate></item></channel></rss>