<?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[Suche alternative Vector und Double-Linked-List Implementation]]></title><description><![CDATA[<p>Hi, kennt jemand zufällig eine gute Vector oder Double-Linked-List Implementation? Mal von der Standard Library abgesehen. Oft gibt es ja z.B. auf den Seiten von Universitäten entsprechende Implementationen. Bei meiner Suche habe ich jedoch noch nichts zufriedenstellendes gefunden. Ideal wäre es wenn die Implememtation dann auch noch schneller als die Standard Library ist.</p>
<p>Gruß</p>
<p>StellerFragen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288350/suche-alternative-vector-und-double-linked-list-implementation</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 00:43:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288350.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Jun 2011 11:45:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 11:45:47 GMT]]></title><description><![CDATA[<p>Hi, kennt jemand zufällig eine gute Vector oder Double-Linked-List Implementation? Mal von der Standard Library abgesehen. Oft gibt es ja z.B. auf den Seiten von Universitäten entsprechende Implementationen. Bei meiner Suche habe ich jedoch noch nichts zufriedenstellendes gefunden. Ideal wäre es wenn die Implememtation dann auch noch schneller als die Standard Library ist.</p>
<p>Gruß</p>
<p>StellerFragen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078376</guid><dc:creator><![CDATA[StellerFragen]]></dc:creator><pubDate>Wed, 15 Jun 2011 11:45:47 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 11:51:07 GMT]]></title><description><![CDATA[<p>Du kannst ruhigen Gewissens davon ausgehen, dass die Standardbibliotheksimplementierungen von <code>vector</code> und <code>list</code> (und auch der anderen Container) die performantesten für deine Platform sind.</p>
<p>Die Implementierungen bei Universitäten dienen meist zu Lehrzwecken und sind deswegen gerade nicht optimiert (manchmal sogar fehlerhaft - z.B. sparen sich manche Unis bei verketteten Listen das Freigeben gelöschter Knoten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078378</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Wed, 15 Jun 2011 11:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 12:06:42 GMT]]></title><description><![CDATA[<p>ipsec schrieb:</p>
<blockquote>
<p>Du kannst ruhigen Gewissens davon ausgehen, dass die Standardbibliotheksimplementierungen von <code>vector</code> und <code>list</code> (und auch der anderen Container) die performantesten für deine Platform sind.</p>
</blockquote>
<p>Kommt drauf an für was du die brauchst. Generell sind sie sehr gut und performant, aber wenn man gewissen Einschränkungen hat kann man bestimmt Container bauen, die das besser ausnutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078382</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 15 Jun 2011 12:06:42 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 12:17:05 GMT]]></title><description><![CDATA[<p>StellerFragen schrieb:</p>
<blockquote>
<p>Ideal wäre es wenn die Implememtation dann auch noch schneller als die Standard Library ist.</p>
</blockquote>
<p>In der Regel ist eine schlechte Performance bezogen auf die Standardbibliothek weniger Problem der Bibliothek, sondern eher wie man sie verwendet. Und ja, man kann sie falsch (im Sinne der Performance) verwenden.</p>
<p>Beispielsweise: Man weiß das in einem bestimmten Vektor mindestens 1000 Elemente stecken, setzt aber nicht die Kapazität, sondern nutzt nur push_back... Und da gibt es noch viele andere Fallstricke (wie z.B. die Benutzung des falschen Containers je nach Fall).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078391</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 15 Jun 2011 12:17:05 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 12:18:55 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>ipsec schrieb:</p>
<blockquote>
<p>Du kannst ruhigen Gewissens davon ausgehen, dass die Standardbibliotheksimplementierungen von <code>vector</code> und <code>list</code> (und auch der anderen Container) die performantesten für deine Platform sind.</p>
</blockquote>
<p>Kommt drauf an für was du die brauchst. Generell sind sie sehr gut und performant, aber wenn man gewissen Einschränkungen hat kann man bestimmt Container bauen, die das besser ausnutzen.</p>
</blockquote>
<p>Naja natürlich sind <code>vector</code> und <code>list</code> nicht die Allheilcontainer für alle Fälle. Aber jezt wo du es sagst: für Arrays mit relativ kleiner maximaler Elementanzahl können Stackarrays effizienter sein als dynamische Arrays. In Boost ist außerdem die Library AutoBuffer im Review-Scheduler, welche beides vereinigt: der Container dort hat ein internes Stackarray einer bestimmten Größe, wird diese überschritten, weicht er auf ein dynamisches Array aus. In jedem Fall ist der zu erwartende Geschwindigkeitsgewinn aber wahrscheinlich nicht sehr dramatisch (wenn für das Problem Arrays am geeignetsten sind).</p>
<p>Der TE erfragte aber eine bessere <code>vector</code> - und <code>list</code> -Implementierung als die der Standardbibliothek, also ging ich vom allgemeinen Fall aus. Und da gilt: man nehme an, dass es diese nicht gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078393</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Wed, 15 Jun 2011 12:18:55 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 12:41:34 GMT]]></title><description><![CDATA[<p>StellerFragen schrieb:</p>
<blockquote>
<p>Hi, kennt jemand zufällig eine gute Vector oder Double-Linked-List Implementation? Mal von der Standard Library abgesehen. Oft gibt es ja z.B. auf den Seiten von Universitäten entsprechende Implementationen. Bei meiner Suche habe ich jedoch noch nichts zufriedenstellendes gefunden. Ideal wäre es wenn die Implememtation dann auch noch schneller als die Standard Library ist.</p>
<p>Gruß</p>
<p>StellerFragen</p>
</blockquote>
<p>Boost Intrusive Lists. Nutze die in meinem Projekt und die sind etwas schneller als die STL-Container, weil sie keine Kopien anlegen.<br />
<a href="http://www.boost.org/doc/libs/1_43_0/doc/html/intrusive/" rel="nofollow">http://www.boost.org/doc/libs/1_43_0/doc/html/intrusive/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078403</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Wed, 15 Jun 2011 12:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 12:42:40 GMT]]></title><description><![CDATA[<p>Der Artikel in diesem Sprachenthread erwähnt einen InlinedVector, der wohl 1-2% bringen kann:<br />
<a href="http://www.c-plusplus.net/forum/288349" rel="nofollow">http://www.c-plusplus.net/forum/288349</a></p>
<p>Scheint aber etwas Google-internes zu sein. Womöglich einfach alle Sourcen einer normalen Vectorimplementierung nicht vorcompiliert, sondern alle Bestandteile komplett zur Compilezeit verfügbar. Und/Oder eine Optimierung für kleine Vectoren, bei denen die Datenelemente insgesamt weniger als sizeof(vector&lt;foo&gt;) belegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078406</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 15 Jun 2011 12:42:40 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 13:05:39 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Der Artikel in diesem Sprachenthread erwähnt einen InlinedVector, der wohl 1-2% bringen kann:<br />
<a href="http://www.c-plusplus.net/forum/288349" rel="nofollow">http://www.c-plusplus.net/forum/288349</a></p>
<p>Scheint aber etwas Google-internes zu sein. Womöglich einfach alle Sourcen einer normalen Vectorimplementierung nicht vorcompiliert, sondern alle Bestandteile komplett zur Compilezeit verfügbar. Und/Oder eine Optimierung für kleine Vectoren, bei denen die Datenelemente insgesamt weniger als sizeof(vector&lt;foo&gt;) belegen.</p>
</blockquote>
<p>Denke eher, es ist im Prinzip das, wovon ipsec spricht.<br />
<a href="http://qpid.apache.org/apis/0.7/cpp/html/a00326_source.html" rel="nofollow">http://qpid.apache.org/apis/0.7/cpp/html/a00326_source.html</a><br />
<a href="http://qpid.apache.org/apis/0.6/cpp/html/a00084.html" rel="nofollow">http://qpid.apache.org/apis/0.6/cpp/html/a00084.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078420</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 15 Jun 2011 13:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Suche alternative Vector und Double-Linked-List Implementation on Wed, 15 Jun 2011 17:04:57 GMT]]></title><description><![CDATA[<p>Die grösste Bremse bei den Standard-Containern ist halt, dass sie dynamisch Speicher anfordern.</p>
<p>Ein Vektor der Platz für ein paar Elemente &quot;vorreserviert&quot; hat (im Objekt selbst), vermeidet das (natürlich nur so lange man nicht mehr Elemente reinsteckt als vorreservierter Platz da ist). Das kann wesentlich mehr als 1-2% bringen.</p>
<p>Dann kann man noch die Heap-Implementierung austauschen, das bringt bei MSVC auch nen deutlichen Schub. Ist aber nicht ganz einfach bzw. es gibt einige Fallstricke.</p>
<p>Boost.Intrusive wurde auch schon erwähnt.</p>
<p>Und bei MSVC bzw. einigen anderen Implementierungen kann man noch die &quot;checked iterators&quot; abdrehen, das bringt nochmal ein bisschen was.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2078572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2078572</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 15 Jun 2011 17:04:57 GMT</pubDate></item></channel></rss>