<?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[Zeit in Millisekunden oder noch kleiner]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Programm geschrieben, das meiner Meinung nach viel zu langsam ist. Bereits bei 10.000 Objekten funktioniert es schon sehr langsam (ich iteriere durch mehrere Listen).<br />
Darum wollte ich wissen welche Methode so viel Zeit beansprucht.</p>
<p>Nur... wie mache ich das?</p>
<p>Ich habe einige Beispiele im Internet gesehen, für die ich aber &lt;sys/time.h&gt; inkluden muss. Leider habe ich Visual C++ 2008 Express, das diese Bibliothek nicht kennt.</p>
<p>Gibt es sonst noch eine Möglichkeit?</p>
<p>Ich brauche weder eine Sekundenanzeige oder sonstigen Schnickschnack. Ein Timestamp im Millisekundenbereich (oder kleiner) würde ja schon reichen.</p>
<p>Danke für jede Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286376/zeit-in-millisekunden-oder-noch-kleiner</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 22:22:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286376.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 May 2011 21:30:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 21:31:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Programm geschrieben, das meiner Meinung nach viel zu langsam ist. Bereits bei 10.000 Objekten funktioniert es schon sehr langsam (ich iteriere durch mehrere Listen).<br />
Darum wollte ich wissen welche Methode so viel Zeit beansprucht.</p>
<p>Nur... wie mache ich das?</p>
<p>Ich habe einige Beispiele im Internet gesehen, für die ich aber &lt;sys/time.h&gt; inkluden muss. Leider habe ich Visual C++ 2008 Express, das diese Bibliothek nicht kennt.</p>
<p>Gibt es sonst noch eine Möglichkeit?</p>
<p>Ich brauche weder eine Sekundenanzeige oder sonstigen Schnickschnack. Ein Timestamp im Millisekundenbereich (oder kleiner) würde ja schon reichen.</p>
<p>Danke für jede Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060662</guid><dc:creator><![CDATA[ichbineinnoob]]></dc:creator><pubDate>Sun, 08 May 2011 21:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 21:34:36 GMT]]></title><description><![CDATA[<p>Ein Ansatz wäre clock() aus der &lt;ctime&gt; (wenn der Compiler das nicht kennt, ist er nicht standardkonform). Unter Windows könntest auch noch mit QueryPerformanceCounter() arbeiten, wenn dir das zu ungenau ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060663</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 08 May 2011 21:34:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 21:54:58 GMT]]></title><description><![CDATA[<p>Genaue Zeitmessung in Methoden macht man nicht von Hand, man benutzt dafür einen <em>Profiler</em>.</p>
<p>Aber wenn du bereits bei 10.000 Objekten Schwierigkeiten bekommst vermute ich kein Problem mangelnder Feinoptimierung, sondern massive Designschwächen. Vielleicht stellst du dein Programm mal kurz(!) vor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060667</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 08 May 2011 21:54:58 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 21:58:13 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ein Ansatz wäre clock() aus der &lt;ctime&gt; (wenn der Compiler das nicht kennt, ist er nicht standardkonform). Unter Windows könntest auch noch mit QueryPerformanceCounter() arbeiten, wenn dir das zu ungenau ist.</p>
</blockquote>
<p>Dank dir!</p>
<p>Ich habe zunächst clock() ausprobiert. Das scheint wohl nicht genau genug zu sein. Aber was zählt die Methode eigentlich? Bei Microsoft steht was von clock ticks. Was isn das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060668</guid><dc:creator><![CDATA[ichbineinnoob]]></dc:creator><pubDate>Sun, 08 May 2011 21:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 22:02:39 GMT]]></title><description><![CDATA[<p>Clock ticks sind eine im ANSI Standard definierte Zeiteinheit, deren genauer Wert vom System abhängt - um das in Sekunden umzurechnen, gibt es die Konstante CLOCKS_PER_SEC.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060670</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 08 May 2011 22:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 22:12:30 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Genaue Zeitmessung in Methoden macht man nicht von Hand, man benutzt dafür einen <em>Profiler</em>.</p>
<p>Aber wenn du bereits bei 10.000 Objekten Schwierigkeiten bekommst vermute ich kein Problem mangelnder Feinoptimierung, sondern massive Designschwächen. Vielleicht stellst du dein Programm mal kurz(!) vor?</p>
</blockquote>
<p>Designschwäche? Man dieses Wort hasse ich. Ich schreibe schon seit Wochen an diesem Programm (ich brauche es fürs Studium - bin aber kein C++ Freak - mit Java wär das alles kein Thema) und das was ich bislang habe, werde ich vielleicht verwerfen müssen. -.-</p>
<p>Also, ich fange mal an. Ich versuche derzeit nur ein Graph aufzubauen. Da ich mehrere brauche, habe ich einfach eine Klasse Graph erstellt.</p>
<p>Darin enthalten ist eine Liste aus Zuständen</p>
<pre><code class="language-cpp">list&lt;pair&lt;Zustand,Zustand*&gt;&gt; zustaende;
</code></pre>
<p>und aus Aktionen.</p>
<p>Die Zustände bilden die Knoten und die Aktionen die Kanten.</p>
<p>Aus einem Zustand gelangt man mit einer Aktion in einen anderen Zustand!<br />
Das habe ich so versucht nachzubilden:</p>
<pre><code class="language-cpp">map&lt;pair&lt;Zustand*,Aktion*&gt;,Zustand*&gt; kanten;
</code></pre>
<p>Die Zeiger habe ich genommen um Speicherplatz zu sparen.</p>
<p>Dazu kommen halt diverse Methoden wie</p>
<pre><code class="language-cpp">Zustand* findeZustand(Zustand*)
</code></pre>
<p>mit denen ich durch die Liste iteriere</p>
<pre><code class="language-cpp">for (list&lt;pair&lt;Zustand,Zustand*&gt;&gt;::iterator i_z = zustaende.begin(); i_z != zustaende.end(); i_z++)
</code></pre>
<p>Ach ja, vielleicht sehen die Zeiger unvorteilhaft aus. Aber ich dachte halt so kann ich Speicherplatz speichern. Sonst wäre der Speicheraufwand polynomial.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060672</guid><dc:creator><![CDATA[ichbineinnoob]]></dc:creator><pubDate>Sun, 08 May 2011 22:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 22:19:37 GMT]]></title><description><![CDATA[<p>Wenn du so oft in den Listen suchen willst, solltest du eine Datenstruktur verwenden, in der das schneller geht, z.B. ein std::set&lt;&gt;.</p>
<p>PS: Außerdem solltest du für die Arbeit mit den Zeigern eigene Vergleichs-Funktionen bereitstellen, der Vergleich zwischen unabhängigen Zeigern (d.h. alles was nicht ins selbe Array reinzeigt) ist nämlich undefiniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060676</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 08 May 2011 22:19:37 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 22:27:20 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Wenn du so oft in den Listen suchen willst, solltest du eine Datenstruktur verwenden, in der das schneller geht, z.B. ein std::set&lt;&gt;.</p>
<p>PS: Außerdem solltest du für die Arbeit mit den Zeigern eigene Vergleichs-Funktionen bereitstellen, der Vergleich zwischen unabhängigen Zeigern (d.h. alles was nicht ins selbe Array reinzeigt) ist nämlich undefiniert.</p>
</blockquote>
<p>Was ist ein std::set&lt;&gt; ? Ist das so etwas wie eine Hashtabelle? Ich dachte std::map&lt;&gt; wäre das bereits.</p>
<p>Die Zeiger habe ich gewählt um einfach nur die Adressen zu vergleichen. Zeigen 2 Zustands-Pointer auf die selbe Adresse, so sind diese gleich. Das geht doch schneller, oder?</p>
<pre><code class="language-cpp">Zustand a(1,2), b(1,2);
Zustand *z1 = findeZustand(a), *z2 = findeZustand(b); //  bekommen die selbe Adresse
if (z1==z2) cout &lt;&lt; &quot;Zustand gleich!&quot; &lt;&lt; endl;  // so meinte ich das
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2060677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060677</guid><dc:creator><![CDATA[ichbineinnoob]]></dc:creator><pubDate>Sun, 08 May 2011 22:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Sun, 08 May 2011 22:34:54 GMT]]></title><description><![CDATA[<p>set&lt;&gt; ist ein recht naher Verwandter von map&lt;&gt;, das keine Schlüssel-Wert-Paare verwaltet, sondern nur Schlüssel - da es genau wie die map als Binärbaum aufgebaut ist, bekommst du die Suche auch in logarithmischer Zeit hin.</p>
<blockquote>
<p>Die Zeiger habe ich gewählt um einfach nur die Adressen zu vergleichen. Zeigen 2 Zustands-Pointer auf die selbe Adresse, so sind diese gleich. Das geht doch schneller, oder?</p>
</blockquote>
<p>Gleichheit ist ja auch kein Problem. Aber die map&lt;&gt; verwendet eine größer-als-Relation, um die Elemente in eine Reihenfolge zu bringen und die ist laut Standard nicht garantiert bei unabhängig voneinander existierenden Zeigern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060678</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 08 May 2011 22:34:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 04:06:02 GMT]]></title><description><![CDATA[<p>ichbineinnoob schrieb:</p>
<blockquote>
<p>Die Zeiger habe ich gewählt um einfach nur die Adressen zu vergleichen. Zeigen 2 Zustands-Pointer auf die selbe Adresse, so sind diese gleich. Das geht doch schneller, oder?</p>
<pre><code class="language-cpp">Zustand a(1,2), b(1,2);
Zustand *z1 = findeZustand(a), *z2 = findeZustand(b); //  bekommen die selbe Adresse
if (z1==z2) cout &lt;&lt; &quot;Zustand gleich!&quot; &lt;&lt; endl;  // so meinte ich das
</code></pre>
</blockquote>
<p>Was bedeutet (1,2) beim Erzeugen eines Zustands?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060685</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 09 May 2011 04:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 08:01:36 GMT]]></title><description><![CDATA[<p>ichbineinnoob schrieb:</p>
<blockquote>
<p>Die Zeiger habe ich gewählt um einfach nur die Adressen zu vergleichen. Zeigen 2 Zustands-Pointer auf die selbe Adresse, so sind diese gleich. Das geht doch schneller, oder?</p>
</blockquote>
<p>Sei dir da mal nicht so sicher. Du baust dir eine Indirektion ein, um was zu sparen? Den Vergleich zweier Zahlen? Und umständlicher wird der Code dadurch auch noch.</p>
<blockquote>
<p>Die Zeiger habe ich genommen um Speicherplatz zu sparen.</p>
</blockquote>
<p><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="😕"
    /></p>
<p>Ich glaube dein Programm ist, das muss man einfach mal so sagen, ein Paradebeispiel für den Spruch &quot;Premature optimization is the root of all evil&quot;. Anstatt dich gründlich mit den grundlegenden Datenstrukturen zu befassen und damit ein schönes, schnelles, leicht zu schreibendes und (voraussichtlich) auch schnelles Programm zu schreiben, hast du alles unnötig umständlich gemacht. Und die zugrunde liegenden Überlegungen sind noch nicht einmal richtig, was die Sache noch schlimmer macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060723</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 May 2011 08:01:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 11:20:33 GMT]]></title><description><![CDATA[<p>Nochmal kurz die Zwischenfrage zum Vergleich von Adressen.</p>
<pre><code class="language-cpp">vector&lt;Foo*&gt; foos(/*...*/);
sort(foos.begin(), foos.end());
Foo* kandidat = /*...*/;
bool kandidatIstDabei = 
    binary_search(foos.begin(), foos.end(), kandidat);
</code></pre>
<p>Ist das tatsächlich undefiniert oder in irgendeiner Weise problematisch? Ich mach sowas nämlich auch gelegentlich. Ich möchte dabei auch keine Reihenfolge definieren, sondern die Adresse nur als Identität des Objekts verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060791</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Mon, 09 May 2011 11:20:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 11:25:43 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Ist das tatsächlich undefiniert oder in irgendeiner Weise problematisch? Ich mach sowas nämlich auch gelegentlich. Ich möchte dabei auch keine Reihenfolge definieren, sondern die Adresse nur als Identität des Objekts verwenden.</p>
</blockquote>
<p>Wenn das der Vergleich ist, den du wünscht, dann ist das auch richtig. Die meisten Leute verstehen aber unter Gleichheit eben etwas anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060792</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 May 2011 11:25:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 11:30:41 GMT]]></title><description><![CDATA[<p>Mich hatte jetzt das hier etwas irritiert</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Außerdem solltest du für die Arbeit mit den Zeigern eigene Vergleichs-Funktionen bereitstellen, der Vergleich zwischen unabhängigen Zeigern (d.h. alles was nicht ins selbe Array reinzeigt) ist nämlich undefiniert.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2060795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060795</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Mon, 09 May 2011 11:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 12:43:45 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<p>Mich hatte jetzt das hier etwas irritiert</p>
<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Außerdem solltest du für die Arbeit mit den Zeigern eigene Vergleichs-Funktionen bereitstellen, der Vergleich zwischen unabhängigen Zeigern (d.h. alles was nicht ins selbe Array reinzeigt) ist nämlich undefiniert.</p>
</blockquote>
</blockquote>
<p>Ahh, stimmt, da war ja was <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> . Ja, das kann auf manchen Maschinen in die Hose gehen. Aber das ist so exotisch, dass ich da nicht mehr dran denke.<br />
Die Standardbibliotheken machen solche Geschichten intern übrigens auch, das ist es moralisch gerechtfertigt das selber auch so zu machen. Ich sage mal, das ist so ein Fall, wo man die Portabilität wirklich zu weit treibt, wenn man auf so etwas noch achtet. Das ist wie anzunehmen, dass der Zeichensatz nicht ASCII kompatibel wäre oder das Byte nicht 8 Bit hätte. Klar, es ist nicht definiert, aber man muss schon ganz schön suchen für ein reales Gegenbeispiel.</p>
<p>Vielleicht noch interessant dazu ist diese uralte Diskussion:<br />
<a href="http://groups.google.com/group/comp.std.c++/browse_thread/thread/604972347050fbd6/2c5509bf63bb3e7d?lnk=gst&amp;q=pointer+less+set#2c5509bf63bb3e7d" rel="nofollow">http://groups.google.com/group/comp.std.c++/browse_thread/thread/604972347050fbd6/2c5509bf63bb3e7d?lnk=gst&amp;q=pointer+less+set#2c5509bf63bb3e7d</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060835</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 09 May 2011 12:43:45 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 20:55:12 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich glaube dein Programm ist, das muss man einfach mal so sagen, ein Paradebeispiel für den Spruch &quot;Premature optimization is the root of all evil&quot;. Anstatt dich gründlich mit den grundlegenden Datenstrukturen zu befassen und damit ein schönes, schnelles, leicht zu schreibendes und (voraussichtlich) auch schnelles Programm zu schreiben, hast du alles unnötig umständlich gemacht. Und die zugrunde liegenden Überlegungen sind noch nicht einmal richtig, was die Sache noch schlimmer macht.</p>
</blockquote>
<p>Ich stehe unter Zeitdruck und habe leider keine Zeit mich gründlich mit den grundlegenden Datenstrukturen zu befassen (so gern ich das täte!). Ich muss in vorgegebener Zeit ein Lernalgorithmus programmieren. Welche Datenstrukturen ich benutze ist zweitrangig (aber scheinbar auch nicht unwichtig)...<br />
Es mag sein, dass ich einiges versaut habe, aber die zugrunde liegenden Überlegungen sind nicht unbedingt falsch. Nur scheine ich einige Aspekte nicht bedacht zu haben. Ich wollte halt nicht nur auf die Geschwindigkeit achten, sondern auch auf den Speicherverbrauch (weswegen ich dachte Pointer wären sinnvoll) und dazu sollten die Daten auch persistent sein (was diese komische Speicherstruktur erklärt.</p>
<p>Nun ja, ich bin für jede Hilfe mordsmäßig dankbar! Also sag mir doch bitte nicht nur, dass ich falsch gedacht habe, sondern auch inwiefern. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2061036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2061036</guid><dc:creator><![CDATA[ichbineinnoob]]></dc:creator><pubDate>Mon, 09 May 2011 20:55:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 21:09:54 GMT]]></title><description><![CDATA[<p>Um noch einmal mehr oder weniger auf das Thema zurück zu kommen.</p>
<p>Die Suche in der std::list ist schon bei nur 1.500 Objekten 240 mal langsamer als eine Einfügeaktion in der std::map. So krass ist hätte ich den Aufwand nicht erwartet.</p>
<p>Wenn ich die std::list in eine std::set ändere, dann funktioniert das Suchen sicher schneller. Aber ich müsste (nach meinen Überlegungen) auch die Pointer weg lassen, weil sich Hashtabellen ständig ändern. Ich müsste anstatt 3n Objekte + Pointer, n² abspeichern. Ich hoffe das ist nicht so schlimm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2061042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2061042</guid><dc:creator><![CDATA[ichbineinnoob]]></dc:creator><pubDate>Mon, 09 May 2011 21:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zeit in Millisekunden oder noch kleiner on Mon, 09 May 2011 21:18:29 GMT]]></title><description><![CDATA[<p>set/map verwenden keine Hash-Tabellen, sondern einen binären Suchbaum. Und sie garantieren beide, daß Iteratoren und Zeiger auf ihre Elemente gültig bleiben, solange du nicht das betroffene Element selber löschst.</p>
<p>Ein Problem könnte das set&lt;&gt; mit Default-Sortierung und deiner Such-Methode von dort oben ergeben - wenn du die Adressen vegleichst, wirst du das lokal angelegte Vergleichs-Objekt bestimmt nicht in der Sammlung finden.</p>
<p>(wenn du mit Hash-Tabellen arbeiten willst, gibt es in C++0x die unordered_set&lt;&gt; und Kollegen)</p>
<p>Ansonsten: Wie groß sind deine Zustände und Aktionen überhaupt? Wenn die nur aus zwei Zahlen bestehen, lohnt sich der Aufwand mit den Zeigern nicht wirklich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2061047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2061047</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 09 May 2011 21:18:29 GMT</pubDate></item></channel></rss>