<?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[Hash-Funktion für arrays bzw. double-werte]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein hash-table über hash_map erstellt. Ich benötige eine Hash-funktion<br />
die mir einen möglichst kollisionsfreien eindeutigen schlüssel generiert.</p>
<p>Das Problem: Ich habe Vectoren/Arrays die aus double-werten bestehen.<br />
Ich berechne mir aus jedem array einen eindeutigen schlüssel und speichere das ganze ding mit schlüssel im hash ab.</p>
<p>Meine jetzige Hash-Funktion sieht so aus:</p>
<pre><code class="language-cpp">Key Hash::Compute_Key( const double* vec,
                       size_t size) const
{
    Key ret = 0;
    Key mix = Hash_Double(0.13);
    while(size--)
    {
        ret = (ret*31) + mix + Hash_Double(*vec);
        vec++;
    }
    return ret;
}
</code></pre>
<p>und mein Hash_Double sieht so aus:</p>
<pre><code class="language-cpp">inline Key Hash::Hash_Double(double x)
{
    Key p[2];
    memcpy( p, &amp;x, sizeof p );
    return p[0] ^ p[1];
}
</code></pre>
<p>Nur führt das bei mir zu Kollisionen: Z.B: die vektoren [8.0,0.0,0.0,8.0] und<br />
[8.0,-2.0,-2.0,8.0] erzeugen identische schüssel.</p>
<p>Meine Frage: Was wäre eine günstigere Hash-Funktion bzw. eine Kollisionsfreiere? Ich überlege die ganze zeit ob ich die mix-variable oder die primzahl 31 ändern sollte. Habt ihr vorschläge für eine gute Schlüsselerzeugung für double-arrays?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/291972/hash-funktion-für-arrays-bzw-double-werte</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 08:17:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/291972.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 Aug 2011 09:16:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 09:16:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein hash-table über hash_map erstellt. Ich benötige eine Hash-funktion<br />
die mir einen möglichst kollisionsfreien eindeutigen schlüssel generiert.</p>
<p>Das Problem: Ich habe Vectoren/Arrays die aus double-werten bestehen.<br />
Ich berechne mir aus jedem array einen eindeutigen schlüssel und speichere das ganze ding mit schlüssel im hash ab.</p>
<p>Meine jetzige Hash-Funktion sieht so aus:</p>
<pre><code class="language-cpp">Key Hash::Compute_Key( const double* vec,
                       size_t size) const
{
    Key ret = 0;
    Key mix = Hash_Double(0.13);
    while(size--)
    {
        ret = (ret*31) + mix + Hash_Double(*vec);
        vec++;
    }
    return ret;
}
</code></pre>
<p>und mein Hash_Double sieht so aus:</p>
<pre><code class="language-cpp">inline Key Hash::Hash_Double(double x)
{
    Key p[2];
    memcpy( p, &amp;x, sizeof p );
    return p[0] ^ p[1];
}
</code></pre>
<p>Nur führt das bei mir zu Kollisionen: Z.B: die vektoren [8.0,0.0,0.0,8.0] und<br />
[8.0,-2.0,-2.0,8.0] erzeugen identische schüssel.</p>
<p>Meine Frage: Was wäre eine günstigere Hash-Funktion bzw. eine Kollisionsfreiere? Ich überlege die ganze zeit ob ich die mix-variable oder die primzahl 31 ändern sollte. Habt ihr vorschläge für eine gute Schlüsselerzeugung für double-arrays?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112817</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 09:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 09:28:09 GMT]]></title><description><![CDATA[<p>Was ich noch vergessen habe zu erwähnen: Die schlüssel sollten natürlich ganzzahlig sein zum vergleich.</p>
<p>Vielleicht im Inneren der Hash-Funktion sowas berechnen?:</p>
<pre><code class="language-cpp">ret = Hash_Double(ret) * 31 + mix + Hash_Double(*vec);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2112822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112822</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 09:28:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 09:30:41 GMT]]></title><description><![CDATA[<p>Liefern unorderedset/unordered_map nicht eine generische Funktion mit?<br />
Ich würde mir nicht groß trauen sowas selbst zu implementieren, in guten steckt doch eine Menge Mathematik.</p>
<p>In der Uni haben wir diesbezüglich auch nur unperformanten Mist hinbekommen, gut doppelt so langsam oder schlimmer als die Standard-Container (Java in unserem Fall).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112825</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Wed, 31 Aug 2011 09:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 09:32:43 GMT]]></title><description><![CDATA[<p>Eventuell <a href="http://www.boost.org/doc/libs/1_47_0/doc/html/hash.html" rel="nofollow">Boost.Hash</a>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112827</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 31 Aug 2011 09:32:43 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:01:46 GMT]]></title><description><![CDATA[<p>kann den gesamten code jetzt nicht auf boost umstellen.<br />
Außerdem muss ich hier auf c++ stl mist zugreifen. gibts da was? kann ihc irgendwie aus unordered_map was extrahieren und haben die wirklich für double-vektoren hash-funktionen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112834</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:01:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:04:25 GMT]]></title><description><![CDATA[<p>Testo schrieb:</p>
<blockquote>
<p>kann den gesamten code jetzt nicht auf boost umstellen.</p>
</blockquote>
<p>Du brauchst doch bloß deine Hashfunktion übergeben, mehr nicht.</p>
<p>Testo schrieb:</p>
<blockquote>
<p>c++ stl mist</p>
</blockquote>
<p>Spinnst du?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112838</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:04:25 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:18:27 GMT]]></title><description><![CDATA[<p>Ohne dir jetzt zu nahe treten zu wollen: Wieso hashst du ein Array?<br />
Eine normale Map, die über einen Baum implementiert ist, sollte da nicht langsamer sein (warscheinlich sogar schneller).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112842</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:18:27 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:23:30 GMT]]></title><description><![CDATA[<p>Warum ein Array: Der gesamtalgorithmus hat halt arrays. Ich werde jetzt sicherlich nicht die gesamten datenstrukturen umbauen. stl::vektoren sind ja im grunde arrays.</p>
<blockquote>
<p>Du brauchst doch bloß deine Hashfunktion übergeben, mehr nicht.</p>
</blockquote>
<p>eh ich will ja eine hash-funktion erstellen - deswegen die frage. wo ich sie übergebe ist ja auch schon egal.</p>
<p>meine frage war ernst gemeint. meine problemstellung ist fix und nicht änderbar. deswegen bitte ich um konstruktive Hilfe: ein double-array und ich suche eine selbst-gestrickte möglichst kollisionsfreie möglichkeit einen ganzzahligen schlüssel zu bauen. oben mein jetziger vorschlag.</p>
<p>mit meinem 2ten post sieht es ganz gut aus. andere meinungen/hilfestellungen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112847</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:24:45 GMT]]></title><description><![CDATA[<p>Wie du deine hash-Funktion erstellen kannst, findest du in der Doku.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112849</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:24:45 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:27:52 GMT]]></title><description><![CDATA[<blockquote>
<p>Warum ein Array: Der gesamtalgorithmus hat halt arrays. Ich werde jetzt sicherlich nicht die gesamten datenstrukturen umbauen. stl::vektoren sind ja im grunde arrays.</p>
</blockquote>
<p>Von mir aus kannst du ja Arrays als Keys nehmen. Zwar schlechtes Design, aber soweit egal.</p>
<p>Mir geht es eher darum dass eine Hashtable ein unpassender Container ist, wenn du riesige Keys hast.</p>
<p>Und: Bist du dir sicher, dass die Arrays als SCHLÜSSEL fungieren sollen? Nicht eher als Data?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112850</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:27:52 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:26:04 GMT]]></title><description><![CDATA[<p>Testo schrieb:</p>
<blockquote>
<p>kann den gesamten code jetzt nicht auf boost umstellen.</p>
</blockquote>
<p>Ich dachte, es ging nur um eine Hash-Funktion?</p>
<p>Testo schrieb:</p>
<blockquote>
<p>gibts da was?</p>
</blockquote>
<p>TR1.Hash</p>
<p>Testo schrieb:</p>
<blockquote>
<p>Warum ein Array: Der gesamtalgorithmus hat halt arrays. Ich werde jetzt sicherlich nicht die gesamten datenstrukturen umbauen. stl::vektoren sind ja im grunde arrays.</p>
</blockquote>
<p>Ja, nur ist es im Allgemeinen dumm, in C++ Arrays zu verwenden. Mindestens <code>std::array</code> sollte schon hin <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/2112851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112851</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:31:30 GMT]]></title><description><![CDATA[<p>Einfach dein double-Array als byte-Array interpretieren und eine der Hashfunktionen von Wikipedia nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112856</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:37:41 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie du deine hash-Funktion erstellen kannst, findest du in der Doku.</p>
</blockquote>
<p>danke für den kommentar, allerdings kann ich auf solche hilfe verzichten. meine frage war spezifisch und genau. diese antwort dagegen nicht.</p>
<blockquote>
<p>Ja, nur ist es im Allgemeinen dumm, in C++ Arrays zu verwenden. Mindestens std::array sollte schon hin</p>
</blockquote>
<p>Begründung?</p>
<blockquote>
<p>Ich dachte, es ging nur um eine Hash-Funktion?</p>
</blockquote>
<p>richtig ja. aber wenn ich NUR die eine einzige hash-funktion auf boost setze und deswegen gleich der gesamte code eine abhängigkeit auf boost hat weiss ich nicht ob das sinnvoll ist. ich schaue mir mal TR1.Hash an</p>
<blockquote>
<p>Einfach dein double-Array als byte-Array interpretieren und eine der Hashfunktionen von Wikipedia nehmen.</p>
</blockquote>
<p>puh. ist die reihenfolge der elemente gesichert? Also liefert 0.0,1.0 einen anderen schlüssel als 1.0,0.0 ? genau verstehe ich deinen kommentar jetzt nicht?</p>
<blockquote>
<p>nd: Bist du dir sicher, dass die Arrays als SCHLÜSSEL fungieren sollen? Nicht eher als Data?</p>
</blockquote>
<p>Ja die arrays müssen als schlüssel dienen. Sobald 2 arrays gleich sind passiert etwas. Nur die Überprüfung dass 2 arrays gleich sind ist nicht trivial wie ich finde. Das ganze muss im hash liegen wegen schnellem zugriff.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112861</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:43:27 GMT]]></title><description><![CDATA[<p>Testo schrieb:</p>
<blockquote>
<p>danke für den kommentar, allerdings kann ich auf solche hilfe verzichten. meine frage war spezifisch und genau. diese antwort dagegen nicht.</p>
</blockquote>
<p>Meine Antwort war genau genug. Dazu hat Nexus dir den Link gegeben, damit DU dir das aus der Doku rausliest. Ich habe sie kurz aufgeschlagen, selbst im Inhaltsverzeichnis sieht man schon, wo man hin muss.</p>
<p>Testo schrieb:</p>
<blockquote>
<p>Begründung?</p>
</blockquote>
<p>Wenn du nach ner Begründung dafür fragst und die STL Mist schimpfst, dann lern erst mal C++.<br />
Ich wette du kommst von Java. Oder vielleicht von C#? Was noch primitiveres? Irgendwas, wo du jeden Scheiß in Form einer Klasse in den Arsch geschoben bekommst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112864</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:43:27 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:44:09 GMT]]></title><description><![CDATA[<blockquote>
<p>Ja die arrays müssen als schlüssel dienen. Sobald 2 arrays gleich sind passiert etwas. Nur die Überprüfung dass 2 arrays gleich sind ist nicht trivial wie ich finde. Das ganze muss im hash liegen wegen schnellem zugriff.</p>
</blockquote>
<p>Und nochmal: Wie sieht es mit einer normalen Map aus?</p>
<p>Angenommen du hast große Arrays. Wenn diese sich innerhalb der ersten Elemente unterscheiden(Was der Regelfall ist), ist ein Vergleichen sehr viel billiger als das Hashen des ganzen Arrays. Vor allem Kollisionen werden bei soetwas richtig teuer.</p>
<p>Probiers doch einfach mal aus was schneller ist, ich tippe gerade stark auf die Lösung ohne Hashtable.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112865</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:44:12 GMT]]></title><description><![CDATA[<p>Zu dem Vorschlag TR1.hash.: Einfach container benutzen - aber wie definier ich die hash-funktion? Ähnlich zu hash_map?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112866</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:48:09 GMT]]></title><description><![CDATA[<blockquote>
<p>Wenn du nach ner Begründung dafür fragst und die STL Mist schimpfst, dann lern erst mal C++.<br />
Ich wette du kommst von Java. Oder vielleicht von C#? Was noch primitiveres? Irgendwas, wo du jeden Scheiß in Form einer Klasse in den Arsch geschoben bekommst.</p>
</blockquote>
<p>ich will mich nicht auf das niveau herablassen: java habe ich vor 6 jahren hinter mir gelassen genau wie c#. stl ist natürlich kein mist. aber wir wissen alle dass die STL nicht immer das gelbe vom Ei ist.</p>
<blockquote>
<p>Und nochmal: Wie sieht es mit einer normalen Map aus?</p>
</blockquote>
<p>ich weiß jetzt nicht ob ich dich richtig verstehe. du meinst die hash-map aussondern und ne normale map verwenden ohne hash-funktion? wie vergleichst du dann die dobule-elemente? über eine epsilon=1e-16 mittels fabs(vec1[i]-vec2[i])&lt; eps oder so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112871</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:48:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 10:50:25 GMT]]></title><description><![CDATA[<p>Mit std::less&lt;double&gt; <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/2112874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112874</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 10:50:25 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 11:01:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Mit std::less&lt;double&gt;</p>
</blockquote>
<p>Aha. sehe ich das richtig dass mir std::less binär arbeitet und zurückgibt ob 2 typen identisch bzw. kleiner sind? Also wäre das ja genau ein korrektes hilfsmittel mir zu sagen ob 2 double-werte identisch sind auf binärbasis. ist das so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112884</guid><dc:creator><![CDATA[Testo]]></dc:creator><pubDate>Wed, 31 Aug 2011 11:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 11:07:26 GMT]]></title><description><![CDATA[<p>Nein, std::less vergleich nicht auf Binärbasis. Allerdings mit einem Epsilonvergleich soweit ich weiß. (korrigiert mich, wenn ich falsch liege)</p>
<p>Edit: Irrtum, scheinbar verwendet std::less&lt;double&gt; den ganz normalen built-in operator &lt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112887</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 11:07:26 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 11:32:20 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Edit: Irrtum, scheinbar verwendet std::less&lt;double&gt; den ganz normalen built-in operator &lt;.</p>
</blockquote>
<p>Ja, das ist sozusagen die Definition und der Zweck all dieser Funktionsobjekte.</p>
<p>Überhaupt, was soll ein Epsilon-Vergleich bei &quot;kleiner&quot; sein? Und woher sollte less ein epsion nehmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112894</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 31 Aug 2011 11:32:20 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 11:36:03 GMT]]></title><description><![CDATA[<p>Es wäre ja denkbar, dass std::less eine Spezialisierung für double hat.</p>
<p>Epsilon-Vergleich habe ich mich geirrt. Jaja, wieder so ein Post, den ich mir hätte sparen können. Ich weiß schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112896</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 11:36:03 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 11:43:17 GMT]]></title><description><![CDATA[<p>Testo schrieb:</p>
<blockquote>
<blockquote>
<p>Einfach dein double-Array als byte-Array interpretieren und eine der Hashfunktionen von Wikipedia nehmen.</p>
</blockquote>
<p>puh. ist die reihenfolge der elemente gesichert? Also liefert 0.0,1.0 einen anderen schlüssel als 1.0,0.0 ? genau verstehe ich deinen kommentar jetzt nicht?</p>
</blockquote>
<p>Weisst du was eine Hashfunktion macht und wie sie sich von einer perfekten Hashfunktion unterscheidet? Natuerlich gibt es keine Garantie, aber wit grosser Wahrscheinlichkeit unterscheiden sie sich. Aber wahrscheinlich solltest du wohl auf <code>std::set</code> oder <code>std::map</code> zurueckgreifen (nach deinen Anforderungen zu urteilen). Deine Frage ueber die Reihenfolge verstehe ich nicht, ein <code>reinterpret_cast&lt;int*&gt;</code> veraendert nicht die Reihenfolge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112900</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 31 Aug 2011 11:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 11:46:13 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Deine Frage ueber die Reihenfolge verstehe ich nicht, ein <code>reinterpret_cast&lt;int*&gt;</code> veraendert nicht die Reihenfolge.</p>
</blockquote>
<p>Verletzt aber die strict aliasing rule (Oder wars doch ne andere? Ist doch egal, irgend ne Regel im Standard wird verletzt!). Daher wenn dann reinterpret_cast&lt;char*&gt; <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/2112901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112901</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 11:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 12:04:42 GMT]]></title><description><![CDATA[<p>Bei einem double-Array als Ausgangspunkt hoffe ich einfach, dass es aehnlich wie ein int-Array bzw. int64-Array ausgerichtet ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2112905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112905</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Wed, 31 Aug 2011 12:04:42 GMT</pubDate></item><item><title><![CDATA[Reply to Hash-Funktion für arrays bzw. double-werte on Wed, 31 Aug 2011 12:10:33 GMT]]></title><description><![CDATA[<p>Hoffen ist aber nicht standardkonform <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/2112908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2112908</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 31 Aug 2011 12:10:33 GMT</pubDate></item></channel></rss>