<?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]]></title><description><![CDATA[<p>template &lt; class T, class Allocator = allocator&lt;T&gt; &gt; class list;</p>
<p>Was soll neben class T, der 2 parameter des templates ?</p>
<p>class Allocator = allocator&lt;T&gt; ???</p>
<p>Ist das ein optionaler Parameter oder.</p>
<p>Denn dies funktioniert: list &lt;int&gt; myListe;</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255647/stl</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 21:16:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255647.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Dec 2009 11:46:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 11:46:11 GMT]]></title><description><![CDATA[<p>template &lt; class T, class Allocator = allocator&lt;T&gt; &gt; class list;</p>
<p>Was soll neben class T, der 2 parameter des templates ?</p>
<p>class Allocator = allocator&lt;T&gt; ???</p>
<p>Ist das ein optionaler Parameter oder.</p>
<p>Denn dies funktioniert: list &lt;int&gt; myListe;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817015</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 03 Dec 2009 11:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 11:49:04 GMT]]></title><description><![CDATA[<p>Ja. Das ist ein optionaler Template Parameter. Du kannst eine Liste instanzieren, welche einen von dir geschriebenen Allokator benutzt. (Also du selbst den Speicher verwaltest, den die Liste benutzt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817018</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 03 Dec 2009 11:49:04 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:11:17 GMT]]></title><description><![CDATA[<p>Und was bedeutet der 2.Parameter in diesem Fall ?</p>
<p>template &lt; class T, class Container = deque&lt;T&gt; &gt; class stack;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817045</guid><dc:creator><![CDATA[blurry33]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:17:19 GMT]]></title><description><![CDATA[<p>Das ist der Containertyp, den stack intern verwenden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817052</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:17:19 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:17:53 GMT]]></title><description><![CDATA[<p>das der stack hier über eine deque implementiert wird, würde ich raten - macht aber imho nicht all zu viel sinn^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817053</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:17:53 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:28:04 GMT]]></title><description><![CDATA[<p>das ganze als list zu implementieren wär das nicht sinnvoller ?</p>
<p>Jetzt noch die Frage über den Nutzen der Container. Sollte man z.B. den<br />
list Container verwenden oder sich selbst eine Liste schreiben.<br />
Haben die Container der STL irgendwelche Nachteile ? Werden sie von<br />
Software Firmen verwendet ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817060</guid><dc:creator><![CDATA[blurry33]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:28:04 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:35:54 GMT]]></title><description><![CDATA[<p>Nö, der Speicher- und Zeitoverhead dürfte bei list größer sein.<br />
Zu den anderen Fragen: ja/nein/nein/ja (jeweils gerundete Antworten).<br />
Gegenfrage: was macht dich glauben, eine eigene Implementation könnte wesentliche Vorteile bieten? Auf dieser Basis könnte man sinnvollere Diskussionen führen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817067</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:39:22 GMT]]></title><description><![CDATA[<p>Verwende immer die Standard-Container, im Zweifel std::vector. Viele Firmen verwenden diese nicht, weil ihre Programme (oder Programmierer) schön urig sind und es die Standardbibliothek &quot;erst&quot; seit ~12 Jahren gibt, aber davon brauchst du dich nicht beeinflussen lassen.</p>
<p>std::list würde ich in den allermeisten Fällen eh die Finger von lassen, fast immer ist ein normaler std::vector schneller.</p>
<p>Die Allokatoren würde ich in Ruhe lassen, die sind eine ziemliche Fehlkonstruktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817072</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:39:22 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:41:45 GMT]]></title><description><![CDATA[<p>in der Firma wo ich Praktikum gemacht habe, die haben alle Funktionen<br />
selber geschrieben. Aber ich könnte mir vorstellen , dass man z.b.<br />
irgendwelche Funktionen noch dazu haben will.</p>
<p>Wie ist es z.B. beim Stack . mit stack.pop() kann ich das oberste<br />
Element zwar runterholen, aber mit cout&lt;&lt;stack.pop() funktioniert das nicht.<br />
Wie kann ich meinen stack dann ausgeben ? außer empty,size,top,push,pop<br />
gibt es keine funktionen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817075</guid><dc:creator><![CDATA[blurry33]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:44:48 GMT]]></title><description><![CDATA[<p>Sorry. Es geht wohl mit stack.top();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817080</guid><dc:creator><![CDATA[blurry33]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:44:48 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:46:28 GMT]]></title><description><![CDATA[<p>aber z.B. könnte man die Mitte oder das unterste Element ausgeben wollen.<br />
Diese Funktionalität fehlt beim STL stack</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817084</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 12:49:25 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>aber z.B. könnte man die Mitte oder das unterste Element ausgeben wollen.<br />
Diese Funktionalität fehlt beim STL stack</p>
</blockquote>
<p>nein, die fehlt nicht - deshalb ist es ein stack... : D</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817086</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:49:25 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 15:28:54 GMT]]></title><description><![CDATA[<p>Ein stack ist ein stack. Da packt man oben was drauf und nimmt es oben wieder runter. Der stack ist wie queue eigentlich gar kein richtiger Container, sondern ein Wrapper. Das gleiche kannst du auch mit deque machen. Du machst blos mit dem Wort stack deutlich, dass es um einen Stapel geht, von dem Du niemals was von unten rausziehst.<br />
Wenn Du oben und unten Elemente rein&amp;raus nehnmen willst, ist std::deque das richtige. Für Elemente in der Mitte list.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817175</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Thu, 03 Dec 2009 15:28:54 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 18:17:20 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>das der stack hier über eine deque implementiert wird, würde ich raten - macht aber imho nicht all zu viel sinn^^</p>
</blockquote>
<p>Wieso nicht? Ich nehme an, die Standardmenschen haben sich schon was dabei überlegt und sind zum Schluss gekommen, dass in den meisten Fällen eine <code>std::deque</code> schneller ist, weil sie gleich mehrfach allokieren und deallokieren kann. Ausserdem ist der Overhead durch Verkettungszeiger geringer.</p>
<p>.filmor schrieb:</p>
<blockquote>
<p>std::list würde ich in den allermeisten Fällen eh die Finger von lassen, fast immer ist ein normaler std::vector schneller.</p>
</blockquote>
<p><code>std::list</code> finde ich vor allem sehr praktisch, wenn Zeiger, Referenzen und Iteratoren auf Elemente gültig bleiben sollen. Sie kann sich auch bewähren, weil man schnell Elemente in der Mitte (z.B. beim Durchiterieren) löschen kann. Allerdings sollte man im Normalfall davon absehen, <code>std::list</code> für relativ kleine Objekte zu verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817277</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 03 Dec 2009 18:17:20 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 18:30:48 GMT]]></title><description><![CDATA[<p>vorteile sind wohl, dass nicht umkopiert werden muss und speicher freigegeben werden kann, der nicht mehr verwendet wird - ich würd vrmtl trotzdem den vector bevorzugen, da er doch wieder schneller ist - und wenn der zu speichernde typ nicht unendlich groß ist, machts auch nichts aus, wenn man die paar byte die ganze zeit allokiert lässt...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817284</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 03 Dec 2009 18:30:48 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 18:33:36 GMT]]></title><description><![CDATA[<p>Ich verstehe deinen Post nicht. Ich habe ja bereits Vorteile erwähnt, wieso also &quot;Vorteile sind wohl...&quot;? Und warum &quot;ich würd vrmtl trotzdem den vector bevorzugen, da er doch wieder schneller ist&quot;? Sowas kannst du doch nicht pauschal sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817287</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 03 Dec 2009 18:33:36 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 18:48:20 GMT]]></title><description><![CDATA[<p>also allokationen (und deallokationen) wird die deque mind. genau so viele haben, wie der vector<br />
bei der vector-version muss nur umkopiert werden, wenn man davor das reserve vergessen hat bzw. nicht machen konnte, weil man sich nicht sicher sein konnte, wie groß das ganze sein wird...<br />
jz wieder: wenn das objekt nicht unendlich groß ist, kann man halt rel. viel reservieren ohne, dass es jmd stört...<br />
wenn das nicht möglich ist, sollte man halt doch die deque nehmen^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817297</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 03 Dec 2009 18:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to STL on Thu, 03 Dec 2009 19:00:34 GMT]]></title><description><![CDATA[<p>Ah okay, ich dachte, du würdest dich auf <code>std::list</code> (meinen ersten Abschnitt) beziehen. Aber du meinst ja <code>std::stack</code> . <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>Ich habe vorher eher <code>std::deque</code> im Gegensatz zu einer <code>std::list</code> gemeint. An <code>std::vector</code> habe ich hier gar nicht gedacht (wohl, weil er zu <code>std::queue</code> nicht kompatibel ist und ich die Adapter aufgrund fehlender Flexibilität sehr selten verwende).</p>
<p>Ich kann mir vorstellen, dass ein <code>std::stack</code> fähig sein soll, schnell die Grösse zu ändern, ohne viel Speicher zu verschwenden. Vielleicht liegt einem auch etwas daran, dass alle Operationen ungefähr gleich lange dauern (beim <code>std::vector</code> geht wohl viel mehr Zeit verloren, wenn eine Reallokation bei grossen oder vielen Objekten fällig ist). Andererseits kann es gerade durch Grössenschwankungen sinnvoll sein, etwas Speicher vorrätig zu haben.</p>
<p>Aber das sind eigentlich nur Spekulationen. Vielleicht wurde auch eine Münze geworfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817304</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 03 Dec 2009 19:00:34 GMT</pubDate></item></channel></rss>