<?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[passender STL-Container gesucht]]></title><description><![CDATA[<p>Hi Leute! :schland:<br />
Ich brauche für meinen ModelRenderer eine effektive Verwaltung. Die Aufgaben wären folgende:<br />
- Speichern von Informationen, die für das Renden benötigt werden: Model und Instanzdaten -&gt; Objektdaten<br />
- Hinzufügen beliebig vieler Objektdaten -&gt; Keine Begrenzung in der Größe<br />
- Sortieren der Objektdaten nach dem Model -&gt; selbstdefinierte Funktion<br />
- Abarbeiten (Rendern) der sortierten Objektdaten</p>
<p>Gibt es da etwas besseres als std::list?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/270042/passender-stl-container-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 14:49:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270042.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Jul 2010 17:55:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 17:55:04 GMT]]></title><description><![CDATA[<p>Hi Leute! :schland:<br />
Ich brauche für meinen ModelRenderer eine effektive Verwaltung. Die Aufgaben wären folgende:<br />
- Speichern von Informationen, die für das Renden benötigt werden: Model und Instanzdaten -&gt; Objektdaten<br />
- Hinzufügen beliebig vieler Objektdaten -&gt; Keine Begrenzung in der Größe<br />
- Sortieren der Objektdaten nach dem Model -&gt; selbstdefinierte Funktion<br />
- Abarbeiten (Rendern) der sortierten Objektdaten</p>
<p>Gibt es da etwas besseres als std::list?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921806</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 17:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:10:44 GMT]]></title><description><![CDATA[<p>Intuitiv würde ich da auch mal zu einer Liste tendieren. Kommt aber dann extrem auf die tatsächliche Auslastung drauf an. Sortieren ist halt bei einer Liste teurer, als bei anderen Containern (vector, dequeue), aber ob das wirklich relevant ist muss sich zeigen, dann könnte sich allerdings auch etwas baumartiges (AVL, RB) lohnen, welche allerdings nicht in der Standardbibliothek enthalten sind (zumindest nicht zu einem solchem Gebrauch).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921823</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:10:44 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:15:09 GMT]]></title><description><![CDATA[<p>Mit Dequeue hast du mich auf Queue gebracht. Gefällt mir.<br />
Wie sieht es da mit der Perfocmance aus?<br />
Im Prinzip läuft das so ab:<br />
- nach und nach mit push_back füllen<br />
- sortieren<br />
- abarbeiten<br />
- leeren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921824</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:16:50 GMT]]></title><description><![CDATA[<p><a href="http://linuxsoftware.co.nz/containerchoice.png" rel="nofollow">Container-Auswahl</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921827</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:16:50 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:17:56 GMT]]></title><description><![CDATA[<p>Das klingt für mich eindeutig nach Vector. Die einzigen Schwächen des Vektors (Einfügen und Löschen mittendrin) tauchen nämlich nicht auf. Und da der Vector den anderen (komplizierteren) Containern in der Performance überlegen ist, sollte man zu ihm greifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921828</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:17:56 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:26:35 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das klingt für mich eindeutig nach Vector. Die einzigen Schwächen des Vektors (Einfügen und Löschen mittendrin) tauchen nämlich nicht auf.</p>
</blockquote>
<p>Das stimmt wohl. Meine Intuition lenkte mich auf die Liste, weil bei ich oftmals bei solchen Aufgaben ebenfalls mittdendrin Zeugs rausschmeissen muss oder in O(n) durchgehe und Sachen entferne.<br />
Aber wenn nichts entfernt wird (was Blaze mit seinem letzten Post bekräftig), dann ist da wohl ein vector idealer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921833</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:27:41 GMT]]></title><description><![CDATA[<p>Danke, mit der Container-Wahl komme ich auf dequeue.<br />
Ist der vector dafür geeignet, schnell mit push_back befüllt und schnell wieder geleert zu werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921836</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:30:01 GMT]]></title><description><![CDATA[<p>Blaze schrieb:</p>
<blockquote>
<p>Ist der vector dafür geeignet, schnell mit push_back befüllt und schnell wieder geleert zu werden?</p>
</blockquote>
<p>Amortisiert geht das in O(n). Das leeren ist allerdings eine andere Sache. (siehe <a href="http://www.gotw.ca/gotw/054.htm" rel="nofollow">hier</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921839</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:30:01 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:41:50 GMT]]></title><description><![CDATA[<p>Sorry, ich merk's gerade. Ich meine Deque und nicht Dequeue.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921847</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:49:09 GMT]]></title><description><![CDATA[<p>Hab mal schnell gebencht:<br />
Ergebnisse:</p>
<pre><code>Start Deque ...
Start Vector ...
Zeit Deque  (in ms): 3278
Zeit Vector (in ms): 889
Drücken Sie eine beliebige Taste . . .
</code></pre>
<p>Demzufolge ist der Vector ~4 mal schneller als die Deque! Die Entscheidung steht fest. Thanks for help!</p>
<p>Und das ist der Sourcecode des Programmes:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;deque&gt;
#include&lt;vector&gt;
#include&lt;windows.h&gt;
using namespace std;

int main()
{
	deque&lt;int&gt; D;
	vector&lt;int&gt; V;

	static const int iRounds= 1024 * 64, iCapacity= 1024;

	cout&lt;&lt;&quot;Start Deque ...&quot;&lt;&lt;endl;
	DWORD dwDStart= timeGetTime();
	for(int i= 0; i &lt; iRounds; i++)
	{
		//Fill
		for(int u= 0; u &lt; iCapacity; u++)
			D.push_back(u);

		//Sort
		sort(D.begin(), D.end());

		//Traverse
		deque&lt;int&gt;::iterator Iter= D.begin();
		for(; Iter != D.end(); Iter++)
			int a= *Iter;

		//Clear
		D.clear();
	}
	DWORD dwDStop= timeGetTime();

	cout&lt;&lt;&quot;Start Vector ...&quot;&lt;&lt;endl;
	DWORD dwVStart= timeGetTime();
	for(int i= 0; i &lt; iRounds; i++)
	{
		//Fill
		for(int u= 0; u &lt; iCapacity; u++)
			V.push_back(u);

		//Sort
		sort(V.begin(), V.end());

		//Traverse
		vector&lt;int&gt;::iterator Iter= V.begin();
		for(; Iter != V.end(); Iter++)
			int a= *Iter;

		//Clear
		V.clear();
	}
	DWORD dwVStop= timeGetTime();

	cout&lt;&lt;&quot;Zeit Deque  (in ms): &quot;&lt;&lt;dwDStop-dwDStart&lt;&lt;endl;
	cout&lt;&lt;&quot;Zeit Vector (in ms): &quot;&lt;&lt;dwVStop-dwVStart&lt;&lt;endl;

	return(0);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1921852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921852</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:49:09 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:55:17 GMT]]></title><description><![CDATA[<p>Release kompiliert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921854</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 18:58:13 GMT]]></title><description><![CDATA[<p>Nichtmal mit den VC. Der Compiler war ein alter BCC55. Den nehm ich immer mit TextPad um schnell mal was zu testen, ohne gleich ganze Projekte zu starten.<br />
Ich probiers aber trotzdem nochmal mit dem VC.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921857</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 18:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 19:08:35 GMT]]></title><description><![CDATA[<p>Wow! Die Implementierung des VC einer Deque ist aber mal abartig!<br />
Ich habe die Rundenzahl auf ein 16tel des vorherigen gesetzt.<br />
Ja, Release!</p>
<p>Ergibnisse:</p>
<pre><code>Start Deque ...
Start Vector ...
Zeit Deque  (in ms): 5959 (* 16 = 95344) -&gt; Mannomann!
Zeit Vector (in ms): 47   (* 16 = 752) -&gt; Fast wie BCC, nur bisschen schneller
</code></pre>
<p>Probierts am besten selbst mal aus.<br />
PS: WinMM.lib linken und algorithm includen für VC!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921864</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 19:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 19:12:14 GMT]]></title><description><![CDATA[<p>Ich schätze (hoffe) mal, dass das im Release-Mode ganz anders aussieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921866</guid><dc:creator><![CDATA[Oberon_0]]></dc:creator><pubDate>Mon, 05 Jul 2010 19:12:14 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 19:15:50 GMT]]></title><description><![CDATA[<p>Mit &quot;Ja, Release!&quot; meinte ich auch Release.</p>
<p>Der Debug sagt übrigens:</p>
<pre><code>Start Deque ...
Start Vector ...
Zeit Deque  (in ms): 26520
Zeit Vector (in ms): 10015
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1921869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921869</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 19:15:50 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 19:36:32 GMT]]></title><description><![CDATA[<p>Blaze schrieb:</p>
<blockquote>
<p>Danke, mit der Container-Wahl komme ich auf dequeue.<br />
Ist der vector dafür geeignet, schnell mit push_back befüllt und schnell wieder geleert zu werden?</p>
</blockquote>
<p>Befüllen geht ziemlich schnell, einzig deque könnte möglicherweise ein kleines bisschen schneller sein (sofern man vorher kein reserve macht, dann dürfte vector schneller sein). Dafür geht beim vector jeder Zugriff sehr viel schneller als bei anderen Containern. Auch das Löschen geht maximal schnell, sofern du nicht darauf bestehst, dass der Vector dabei den Speicher tatsächlich frei gibt.</p>
<p>Dem von drakon verlinkten Artikel von 1999 würde ich bei der Performance nicht unbedingt trauen. Ich habe das mal nachprogrammiert:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;deque&gt;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;sys/time.h&gt;

using namespace std;

typedef vector&lt;unsigned int&gt; container;
//typedef deque&lt;unsigned int&gt; container;

long miliseconds(timeval start, timeval end)
{
  long mtime, seconds, useconds;    
  seconds  = end.tv_sec  - start.tv_sec;
  useconds = end.tv_usec - start.tv_usec;
  mtime = ((seconds) * 1000 + useconds/1000.0) + 0.5;

  return mtime;
}

int main()
{

  container foo;
  const unsigned int max=100000000;

  timeval start, end;

  // Füllen
  gettimeofday(&amp;start, NULL);
  foo.reserve(max);  // Bei deque auskommentieren
  for(unsigned int i=0; i&lt;max; ++i) foo.push_back(rand());
  gettimeofday(&amp;end, NULL);

  cout&lt;&lt;&quot;Füllen: &quot;&lt;&lt;miliseconds(start,end)&lt;&lt;&quot; Milisekunden&quot;&lt;&lt;endl;

   // Iterieren
  unsigned long sum=0;
  gettimeofday(&amp;start, NULL);
  container::iterator end_iterator=foo.end();
  for(container::iterator i=foo.begin(); i&lt;end_iterator; ++i) sum+=*i;
  gettimeofday(&amp;end, NULL);

  cout&lt;&lt;&quot;Iterieren: &quot;&lt;&lt;miliseconds(start,end)&lt;&lt;&quot; Milisekunden         Anti-Optimierungsausgbe: &quot;&lt;&lt;sum&lt;&lt;endl;

   // Random access
  gettimeofday(&amp;start, NULL);
  for(unsigned int i=0; i&lt;max; ++i) sum+=foo[i];
  gettimeofday(&amp;end, NULL);

  cout&lt;&lt;&quot;Random access, &quot;&lt;&lt;max&lt;&lt;&quot; mal: &quot;&lt;&lt;miliseconds(start,end)&lt;&lt;&quot; Milisekunden         Anti-Optimierungsausgbe: &quot;&lt;&lt;sum&lt;&lt;endl;

   // Random shuffle
  gettimeofday(&amp;start, NULL);
  random_shuffle(foo.begin(),foo.end());
  gettimeofday(&amp;end, NULL);

  cout&lt;&lt;&quot;Random shuffle: &quot;&lt;&lt;miliseconds(start,end)&lt;&lt;&quot; Milisekunden&quot;&lt;&lt;endl;

   // Sortieren
  gettimeofday(&amp;start, NULL);
  sort(foo.begin(),foo.end());
  gettimeofday(&amp;end, NULL);

  cout&lt;&lt;&quot;Sortieren: &quot;&lt;&lt;miliseconds(start,end)&lt;&lt;&quot; Milisekunden&quot;&lt;&lt;endl;

   // Löschen
  gettimeofday(&amp;start, NULL);
  foo.clear();
  gettimeofday(&amp;end, NULL);

  cout&lt;&lt;&quot;Löschen: &quot;&lt;&lt;miliseconds(start,end)&lt;&lt;&quot; Milisekunden&quot;&lt;&lt;endl;
}
</code></pre>
<p>Alle Zeiten auf dem System an dem ich gerade sitze compiliert mit GCC, O3-Optimierung. Das System war zu der zeit unbeschäftigt, die Unterschiede zwischen verschiedenen Läufen sind im niedrigen Prozentbereich, meisten noch kleiner. Alle Läufe mit 100.000.000 unsigned ints:</p>
<pre><code>[b]vector&lt;unsigned int&gt;:
[/b]Füllen: 1536 Milisekunden
Iterieren: 86 Milisekunden         Anti-Optimierungsausgbe: 107376510835882961
Random access, 100000000 mal: 84 Milisekunden         Anti-Optimierungsausgbe: 214753021671765922
Random shuffle: 13349 Milisekunden
Sortieren: 12136 Milisekunden
Löschen: 0 Milisekunden

[b]vector&lt;unsigned int&gt;, Füllen ohne reserve():
[/b]Füllen: 2078 Milisekunden

[b]deque&lt;unsigned int&gt;:[/b]
Füllen: 1641 Milisekunden
Iterieren: 160 Milisekunden         Anti-Optimierungsausgbe: 107376510835882961
Random access, 100000000 mal: 340 Milisekunden         Anti-Optimierungsausgbe: 214753021671765922
Random shuffle: 19180 Milisekunden
Sortieren: 14341 Milisekunden
Löschen: 132 Milisekunden
</code></pre>
<p>edit: Oh, da hat sich ja ganz schön was getan im Thread während ich programmieren und Messen war. Ich hoffe es passt noch zum Thema.</p>
<p>edit2: Ich habe auch noch Löschen mittels clear() hinzugefügt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921872</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 05 Jul 2010 19:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 19:24:05 GMT]]></title><description><![CDATA[<p>Blaze schrieb:</p>
<blockquote>
<p>Wow! Die Implementierung des VC einer Deque ist aber mal abartig!<br />
Ich habe die Rundenzahl auf ein 16tel des vorherigen gesetzt.<br />
Ja, Release!</p>
<p>Ergibnisse:</p>
<pre><code>Start Deque ...
Start Vector ...
Zeit Deque  (in ms): 5959 (* 16 = 95344) -&gt; Mannomann!
Zeit Vector (in ms): 47   (* 16 = 752) -&gt; Fast wie BCC, nur bisschen schneller
</code></pre>
<p>Probierts am besten selbst mal aus.<br />
PS: WinMM.lib linken und algorithm includen für VC!</p>
</blockquote>
<p>Ein bisschen schneller bekommt mans noch mit höchster Optimierung, Präferierung von schnellem Code statt platzsparendem und <code>#define _SECURE_SCL 0</code> , aber den echten Booster-Compilerschalter hab ich auch noch nicht gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921874</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Mon, 05 Jul 2010 19:24:05 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 19:31:48 GMT]]></title><description><![CDATA[<p>ipsec schrieb:</p>
<blockquote>
<p>Ein bisschen schneller bekommt mans noch mit höchster Optimierung, Präferierung von schnellem Code statt platzsparendem und <code>#define _SECURE_SCL 0</code> , aber den echten Booster-Compilerschalter hab ich auch noch nicht gefunden.</p>
</blockquote>
<p>Kennt der VC profile guided optimization? Ich habe damit beim Intel-Compiler und beim GCC sehr gute Erfahrungen gemacht. Damit kann man auch aus gut optimierten Programmen noch ein paar Prozente gegenüber herkömmlicher Optimierung rausholen. Bei einem sehr schlecht programmierten Programm habe ich sogar schon eine so sagenhafte Steigerung gesehen das schreib ich lieber nicht, das glaubt mir sowieso niemand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921880</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 05 Jul 2010 19:31:48 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 19:32:09 GMT]]></title><description><![CDATA[<p>Optimierung hin oder her. MS wird schriftlich gelyncht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> Macht alle mit, damit sich auch was ändert!<br />
Und die Frage ob vector oder deque hat sich damit auch geklärt.</p>
<p>Und der Sieger ist: <em><strong>std::vector</strong></em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921882</guid><dc:creator><![CDATA[Blaze]]></dc:creator><pubDate>Mon, 05 Jul 2010 19:32:09 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 21:31:35 GMT]]></title><description><![CDATA[<p>Debug-Laufzeitumgebung aus? Ich frage nicht aus Spass, sondern weil das hier schon etliche Male der Grund für verfälschte Benchmarks war. Und nein, ich meine nicht Debug-Modus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1921972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921972</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 05 Jul 2010 21:31:35 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Mon, 05 Jul 2010 22:12:06 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<pre><code>[b]vector&lt;unsigned int&gt;:
[/b]Füllen: 1536 Milisekunden
Iterieren: 86 Milisekunden        
Random access, 100000000 mal: 84 Milisekunden         
Random shuffle: 13349 Milisekunden
Sortieren: 12136 Milisekunden
Löschen: 0 Milisekunden

[b]vector&lt;unsigned int&gt;, Füllen ohne reserve():
[/b]Füllen: 2078 Milisekunden

[b]deque&lt;unsigned int&gt;:[/b]
Füllen: 1641 Milisekunden
Iterieren: 160 Milisekunden        
Random access, 100000000 mal: 340 Milisekunden       
Random shuffle: 19180 Milisekunden
Sortieren: 14341 Milisekunden
Löschen: 132 Milisekunden
</code></pre>
</blockquote>
<p>Mit VS2010:</p>
<pre><code>[b]vector&lt;unsigned int&gt;:[/b]
Füllen: 2278 Milisekunden
Iterieren: 124 Milisekunden   
Random access, 100000000 mal: 94 Milisekunden     
Random shuffle: 14446 Milisekunden
Sortieren: 7269 Milisekunden
Löschen: 0 Milisekunden

[b]vector&lt;unsigned int&gt;, Füllen ohne reserve():[/b]
Füllen: 3245 Milisekunden

[b]deque&lt;unsigned int&gt;:[/b]
Füllen: 4680 Milisekunden
Iterieren: 296 Milisekunden         
Random access, 100000000 mal: 874 Milisekunden       
Random shuffle: 25007 Milisekunden
Sortieren: 21466 Milisekunden
Löschen: 1279 Milisekunden
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1921996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1921996</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Mon, 05 Jul 2010 22:12:06 GMT</pubDate></item><item><title><![CDATA[Reply to passender STL-Container gesucht on Tue, 06 Jul 2010 09:01:53 GMT]]></title><description><![CDATA[<p>Wow, VS2010 hat aber einen ziemlich guten Sortieralgorithmus für vector (Komisch das er für deque überproportional schlecht abschneidet). Könnte natürlich an einer günstig zu sortierenden Zufallsverteilung liegen, aber dennoch bin ich irgendwie beeindruckt. Da sieht man mal wo die Entwicklungszeit geblieben ist die nicht zur Verbesserung der deque benutzt wurde <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>
<p>edit: Warum ist Iterieren bei VS langsamer als Random access? Wie kann das überhaupt möglich sein?</p>
<p>edit2: Ups ich sehe gerade, dass mein Code gar keinen Random-access macht, sondern iteriert. Das heißt, life hat bei seiner Messung vermutlich checked iterators noch an.</p>
<p>Wenn ich tatsächlich Random access mache ( <code>foo[rand()%max]</code> ), dann bekomme ich für vector 6800 ms und für deque 23000 ms.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1922090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1922090</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Jul 2010 09:01:53 GMT</pubDate></item></channel></rss>