<?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_map: insert operation sehr teuer? Warum?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen algorithmus mit einer hash_map am laufen. Mein erwarteter speedup mittels hash-map ist leider überhaupt nicht zustandegekommen - leider bekomme ich viel schlechtere laufzeiten (profiling).</p>
<p>An der Hash funktion liegt es nicht - auch wenn ich diese auf nur eine anweisung vereinfache ändert sich da nix.</p>
<pre><code class="language-cpp">struct HASH_DATA
{
    std::vector&lt;double&gt; a;
    std::vector&lt;double&gt; b;
    std::vector&lt;double&gt; c;
    int d;
    int e;   
};

typedef std::pair&lt; std::vector&lt; double &gt;, HASH_DATA&gt; Hash_Pair;
...
 hash_map&lt;std::vector&lt;double&gt;, HASH_DATA, HASH_FUNCTION&gt; m_hash_map;

...

void
Hash::Insert_Hash_Data(const std::vector&lt; double &gt;&amp; a
                       const std::vector&lt; double &gt;&amp; b
                       const std::vector&lt; double &gt;&amp; c
                       const std::vector&lt; double &gt;&amp; d
                       const int e
                       const int f
{
    struct HASH_DATA hd;
    hd.a = b;
    hd.b = c;
    hd.c = d;
    hd.d = e;
    hd.e = f;   
    m_hash_map.insert(Hash_Pair(a, hd));
}
</code></pre>
<p>jetzt weiß ich nicht ob es evtl. an der speicherung von den ganzen vektoren liegen kann - diese können nämlich ziemlich groß werden (dimension 2000).<br />
Ich habe probeweiser mal einfach gar nichts in das hash schreiben lassen - das hat fast gar nichts an dem laufzeitproblem geändert. Natürlich hat er zwar immer an ne andere stelle &quot;nichts&quot; reingeschrieben aber es änderte nichts....kann es sein dass im vergleich die zeit um dinge in die hash_map zu inserten einfach sehr lange arbeiten?</p>
<p>Wenn ja, wäre es performanter das hashing nicht auf basis der stl-extensions zu benutzen sondern zu versuchen selber was zu schreiben? Ich bezweifle dass das speedup bringen könnte...</p>
<p>Für ratschläge bin ich sehr dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164408/hash_map-insert-operation-sehr-teuer-warum</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 02:06:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164408.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Nov 2006 00:50:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 00:53:01 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen algorithmus mit einer hash_map am laufen. Mein erwarteter speedup mittels hash-map ist leider überhaupt nicht zustandegekommen - leider bekomme ich viel schlechtere laufzeiten (profiling).</p>
<p>An der Hash funktion liegt es nicht - auch wenn ich diese auf nur eine anweisung vereinfache ändert sich da nix.</p>
<pre><code class="language-cpp">struct HASH_DATA
{
    std::vector&lt;double&gt; a;
    std::vector&lt;double&gt; b;
    std::vector&lt;double&gt; c;
    int d;
    int e;   
};

typedef std::pair&lt; std::vector&lt; double &gt;, HASH_DATA&gt; Hash_Pair;
...
 hash_map&lt;std::vector&lt;double&gt;, HASH_DATA, HASH_FUNCTION&gt; m_hash_map;

...

void
Hash::Insert_Hash_Data(const std::vector&lt; double &gt;&amp; a
                       const std::vector&lt; double &gt;&amp; b
                       const std::vector&lt; double &gt;&amp; c
                       const std::vector&lt; double &gt;&amp; d
                       const int e
                       const int f
{
    struct HASH_DATA hd;
    hd.a = b;
    hd.b = c;
    hd.c = d;
    hd.d = e;
    hd.e = f;   
    m_hash_map.insert(Hash_Pair(a, hd));
}
</code></pre>
<p>jetzt weiß ich nicht ob es evtl. an der speicherung von den ganzen vektoren liegen kann - diese können nämlich ziemlich groß werden (dimension 2000).<br />
Ich habe probeweiser mal einfach gar nichts in das hash schreiben lassen - das hat fast gar nichts an dem laufzeitproblem geändert. Natürlich hat er zwar immer an ne andere stelle &quot;nichts&quot; reingeschrieben aber es änderte nichts....kann es sein dass im vergleich die zeit um dinge in die hash_map zu inserten einfach sehr lange arbeiten?</p>
<p>Wenn ja, wäre es performanter das hashing nicht auf basis der stl-extensions zu benutzen sondern zu versuchen selber was zu schreiben? Ich bezweifle dass das speedup bringen könnte...</p>
<p>Für ratschläge bin ich sehr dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170843</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 08 Nov 2006 00:53:01 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 03:02:12 GMT]]></title><description><![CDATA[<p>Äh. Vektoren kopieren ist vielleicht sehr teuer?<br />
Vielleicht verstehe ich aber auch nicht genau was du meinst.<br />
Nen std::vector&lt;double&gt; als Key zu verwenden ist auch etwas... seltsam &amp; unüblich.</p>
<p>Was tut denn das Programm inetwa?</p>
<p>Und: eine hash-map ist nicht notwendigerweise sehr schnell beim Einfügen (kommt auf die Implementierung drauf an - sie *kann* auch schnell beim Einfügen sein), sondern eher beim Lookup.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170847</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 08 Nov 2006 03:02:12 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 08:43:09 GMT]]></title><description><![CDATA[<p>Mati schrieb:</p>
<blockquote>
<p>ich habe einen algorithmus mit einer hash_map am laufen. Mein erwarteter speedup mittels hash-map ist leider überhaupt nicht zustandegekommen - leider bekomme ich viel schlechtere laufzeiten (profiling).</p>
</blockquote>
<p>jo, das kommt öfter mal vor. hauptursache ist eine schlechte hash-funktion.</p>
<blockquote>
<p>An der Hash funktion liegt es nicht - auch wenn ich diese auf nur eine anweisung vereinfache ändert sich da nix.</p>
</blockquote>
<p>&quot;bringt sie zu viele kollissionen&quot; ist die frage. die hash_map von dir ist vermutlich ein array mit vielen zeigern auf verkette listen. wenn die hashfunktion immer den gleichen arrayindex erzeugt, dann kollabiert die hash_map zu einer einzigen verketten liste und du hast schreckliche suchzeiten aber noch prima einfügezeiten.</p>
<blockquote>
<pre><code class="language-cpp">void
Hash::Insert_Hash_Data(const std::vector&lt; double &gt;&amp; a
                       const std::vector&lt; double &gt;&amp; b
                       const std::vector&lt; double &gt;&amp; c
                       const std::vector&lt; double &gt;&amp; d
                       const int e
                       const int f
{
    struct HASH_DATA hd;
    hd.a = b;
    hd.b = c;
    hd.c = d;
    hd.d = e;
    hd.e = f;   
    m_hash_map.insert(Hash_Pair(a, hd));
}
</code></pre>
</blockquote>
<p>schade, daß das viele kopieren sein muß. aber egal, du machst eh viel mehr suchoperationen als einfügungen, gell?</p>
<blockquote>
<p>jetzt weiß ich nicht ob es evtl. an der speicherung von den ganzen vektoren liegen kann - diese können nämlich ziemlich groß werden (dimension 2000).</p>
</blockquote>
<p>klar ist das lahm, 5 vectoren zu kopieren, sogar zweimal zu kopieren, einmal in deiner insert-funktion und einmal in der der hash_map (und noch einmaln im ctor von Hash_Pair?). vielleicht ist es besser, sich erst ein leeres datenelement zu holen und dann dort reinzukopieren.</p>
<blockquote>
<p>Ich habe probeweiser mal einfach gar nichts in das hash schreiben lassen - das hat fast gar nichts an dem laufzeitproblem geändert. Natürlich hat er zwar immer an ne andere stelle &quot;nichts&quot; reingeschrieben aber es änderte nichts....kann es sein dass im vergleich die zeit um dinge in die hash_map zu inserten einfach sehr lange arbeiten?</p>
</blockquote>
<p>ca. 100 bis 200 takte, schätze ich. halt einmal den op new aufrufen für die private verkettete liste.</p>
<blockquote>
<p>Wenn ja, wäre es performanter das hashing nicht auf basis der stl-extensions zu benutzen sondern zu versuchen selber was zu schreiben? Ich bezweifle dass das speedup bringen könnte...</p>
</blockquote>
<p>ich auch.</p>
<blockquote>
<p>Für ratschläge bin ich sehr dankbar!</p>
</blockquote>
<p>kannste dir erlauben, zeiger auf vector zu verwalten statt der daten selbst?</p>
<p>außerdem kopierungen sparen.</p>
<pre><code class="language-cpp">//völlig ungetestet. nur mal so ne anregung. 
void Hash::Insert_Hash_Data(const std::vector&lt; double &gt;&amp; a
                       const std::vector&lt; double &gt;&amp; b
                       const std::vector&lt; double &gt;&amp; c
                       const std::vector&lt; double &gt;&amp; d
                       const int e
                       const int f
{
    pair&lt;iterator,bool&gt;&amp; insertResult=m_hash_map.insert(a);
    if(insertResult.second==false) return;
    HASH_DATA&amp; hd=(*insertResult.first).second;
    hd.a = b;
    hd.b = c;
    hd.c = d;
    hd.d = e;
    hd.e = f;   
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1170926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170926</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 08 Nov 2006 08:43:09 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 20:48:04 GMT]]></title><description><![CDATA[<p>danke euch...<br />
habe jetzt meinen algorithmus auf pointer umgeschrieben...<br />
jetzt würde ich gern meine hash klasse komplett auf pointer verlegen...nur habe ich damit enorme probleme....:(</p>
<p>Ich poste mal den ursprung ohne pointer (NEBENBEI: Das Hashing ist zum großteil mit volkards Hilfe entstanden <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>
<pre><code class="language-cpp">//======HEADER==================
#if __GNUC__ &lt; 3
#include &lt;hash_map.h&gt;
#else
#include &lt;ext/hash_map&gt;
using __gnu_cxx::hash_map;
#endif

typedef unsigned int U_Int32;
typedef unsigned long long U_Int64; 

struct HASH_FUNCTION
{

    U_Int32 
    operator()(const std::vector&lt;double&gt; vec) const
    {        

        U_Int32 ret = 0; 
        for(uint i = 0; i &lt; vec.size(); i++)
            ret = (ret * 31) + hash_d(vec[i]);

        return ret;
    }

    inline U_Int32 
    hash_d(double x) const
    { 
        U_Int64* p = reinterpret_cast&lt; U_Int64* &gt; (&amp;x); 
        return *p ^ (*p &gt;&gt; 32); 
    }
};

class Hash
{

    public:
        Hash();

        ~Hash();

        //Methods

        void        Insert_Hash_Data(const std::vector&lt; double &gt;&amp; vec_key, 
                                     const std::vector&lt; double &gt;&amp; A_hat_qr, 
                                     const std::vector&lt; double &gt;&amp; tau,
                                     const std::vector&lt; double &gt;&amp; m_k_hat, 
                                     const int unit_vec_size = -1, 
                                     const int unit_vec_row = -1);

        const       hash_map&lt;std::vector&lt; double &gt;, HASH_DATA, HASH_FUNCTION&gt;&amp; Get_Hash_Map() const;

        const int   Get_Hash_Size();

    private:
        hash_map&lt;std::vector&lt;double&gt;, HASH_DATA, HASH_FUNCTION&gt; m_hash_map;
};

//========================
void
Hash::Insert_Hash_Data(const std::vector&lt; double &gt;&amp; vec_key, 
                       const std::vector&lt; double &gt;&amp; A_hat_qr, 
                       const std::vector&lt; double &gt;&amp; tau,
                       const std::vector&lt; double &gt;&amp; m_k_hat, 
                       const int unit_vec_size, 
                       const int unit_vec_row)
{
    struct HASH_DATA hd;
    hd.A_hat_qr = A_hat_qr;
    hd.tau = tau;
    hd.m_k_hat = m_k_hat;
    hd.unit_vec_row = unit_vec_row;
    hd.unit_vec_size = unit_vec_size;   
    m_hash_map.insert(Hash_Pair(vec_key, hd));
}

const hash_map&lt;std::vector&lt;double&gt;, HASH_DATA, HASH_FUNCTION&gt;&amp; 
Hash::Get_Hash_Map() const
{
    return m_hash_map;   
}

const int
Hash::Get_Hash_Size()
{
    return m_hash_map.size();    
}
</code></pre>
<p>vielleicht hat jemand eine Hilfestellung - ich arbeite daran <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>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171468</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 08 Nov 2006 20:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 20:45:28 GMT]]></title><description><![CDATA[<p>sorry war doppelpost</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171469</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 08 Nov 2006 20:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 21:28:58 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">operator()(const std::vector&lt;double&gt; vec) const
</code></pre>
<p>soll sicherlich</p>
<pre><code class="language-cpp">operator()(const std::vector&lt;double&gt;&amp; vec) const
</code></pre>
<p>heißen.</p>
<p>und</p>
<pre><code class="language-cpp">inline U_Int32 
    hash_d(double x) const
</code></pre>
<p>bestimmt</p>
<pre><code class="language-cpp">static inline U_Int32 
    hash_d(double x) const
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1171473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171473</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 08 Nov 2006 21:28:58 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 21:47:38 GMT]]></title><description><![CDATA[<p>jo...danke...werds ausbessern</p>
<p>mein etwas schneller laufende variante jetzt die auf pointern beruht - zumindest hoffe ich das das so jetzt passt...ergebnisse stimmen...<br />
die aber immer noch meiner meinung nach zu langsam ist hat ca. 5% boost gebracht:<br />
EDIT!!!!: Ne sorry - der boost ist anscheinend grösser aber das gesamtergebnis ist nur um 5% schneller geworden....hmm. Vorhin frass die insert operation 40% der gesamtzeit - jetzt sind es nur noch 5 %. Also doch deutlicher wachstum <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>
<pre><code class="language-cpp">//=========HEADER==========
//hash_map is no C++ standard - 
//so include the extensions due to gcc version
#if __GNUC__ &lt; 3
#include &lt;hash_map.h&gt;
#else
#include &lt;ext/hash_map&gt;
using __gnu_cxx::hash_map;
#endif

typedef unsigned int U_Int32;
typedef unsigned long long U_Int64; 

typedef std::pair&lt;double*, size_t&gt; Key_Pair;

struct HASH_FUNCTION
{

    U_Int32 
    operator()(const Key_Pair kp) const
    {        

        U_Int32 ret = 0;
        size_t dim = kp.second;
        const double* vec = kp.first;
        while(dim--)
        {
            ret = (ret * 31) + hash_d(*vec);
            vec++;
        } 

        return ret;
    }

    inline U_Int32 
    hash_d(double x) const
    { 
        U_Int64* p = reinterpret_cast&lt; U_Int64* &gt; (&amp;x); 
        return *p ^ (*p &gt;&gt; 32); 
    }
};

struct HASH_DATA
{
    double* A_hat_qr;
    double* tau;
    double* m_k_hat;
    int unit_vec_size;
    int unit_vec_row;   
};

typedef std::pair&lt; Key_Pair, HASH_DATA&gt; Hash_Pair;

class Hash
{

    public:

        Hash();
        ~Hash();

        void        Insert_Hash_Data(double* vec_key, 
                                     size_t size,
                                     double* A_hat_qr, 
                                     double* tau,
                                     double* m_k_hat, 
                                     const int unit_vec_size = -1, 
                                     const int unit_vec_row = -1);

        const       hash_map&lt;Key_Pair, HASH_DATA, HASH_FUNCTION&gt;&amp; Get_Hash_Map() const;

        const int   Get_Hash_Size();

    private:

        hash_map&lt;Key_Pair, HASH_DATA, HASH_FUNCTION&gt; m_hash_map;
};

//===========================

....

void
Hash::Insert_Hash_Data(double* vec_key, 
                       size_t size,
                       double* A_hat_qr, 
                       double* tau,
                       double* m_k_hat, 
                       const int unit_vec_size, 
                       const int unit_vec_row)
{
     struct HASH_DATA hd;
     hd.A_hat_qr = A_hat_qr;
     hd.tau = tau;
     hd.m_k_hat = m_k_hat;
     hd.unit_vec_row = unit_vec_row;
     hd.unit_vec_size = unit_vec_size;   
     m_hash_map.insert(Hash_Pair(Key_Pair(vec_key, size), hd));
}

....
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1171480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171480</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 08 Nov 2006 21:47:38 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Wed, 08 Nov 2006 22:52:54 GMT]]></title><description><![CDATA[<p>Naja....<br />
anscheinend findet er obwohl der key identisch ist nicht den entry in der hash_map...</p>
<p>EDIT: scheiße....irgendwie wenn ich die pointer übergebe gehts also net...wenn ich den gleichen pointer übergebe dann schon....aber warum? der pointer zeigt doch einfach nur auf einen speicherbereich in dem dann die gleichen zahlen stehen - und der key ist ja derselbe....???</p>
<p>folgendes habe ich als input :</p>
<pre><code class="language-cpp">Hash h;

    double* A_hat = (double*)calloc(4, sizeof(double));
    A_hat[0] = 0.2;
    A_hat[1] = 0.5;
    A_hat[2] = 0.6;
    A_hat[3] = 0.44;
    double* tau = (double*)calloc(1, sizeof(double));
    tau[0] = 9.9;    
    double* m_k_hat = (double*)calloc(1, sizeof(double));
    m_k_hat[0] = 1.1;

    double* v = (double*)calloc(2, sizeof(double));
    v[0] = 1.44;
    v[1] = 1.1;

    size_t size = 2;

    h.Insert_Hash_Data(v, size, A_hat, tau, m_k_hat, 3,9);

    //h.Print_Specific_Hash_Data(Key_Pair(v, size));
    //h.Print_Full_Hash();
    std::cout &lt;&lt; &quot;Anzahl: &quot; &lt;&lt; h.Get_Hash_Size() &lt;&lt; std::endl;

    hash_map&lt;Key_Pair, HASH_DATA, HASH_FUNCTION&gt;::const_iterator it;

    double* t = (double*)calloc(2, sizeof(double));
    t[0] = 1.44;
    t[1] = 1.1;

    size_t s = 2;
    Key_Pair kp(t, s);

    it = h.Get_Hash_Map().find(kp);

    if(it == h.Get_Hash_Map().end())
        std::cout &lt;&lt; &quot;nicht gefunden&quot; &lt;&lt; std::endl;
    else
        std::cout &lt;&lt; &quot;gefunden&quot; &lt;&lt; std::endl;
</code></pre>
<p>da sollte er eigentlich gefunden ausgeben - die schlüssel sind absolut identisch also die Hash-funktion arbeitet korrekt ...nur warum läuft er über das element drüber? Kann es sein dass das Key_Pair probleme macht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171507</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Wed, 08 Nov 2006 22:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Thu, 09 Nov 2006 23:03:22 GMT]]></title><description><![CDATA[<p>*grmpf....ich versteh das net....hat jemand ne Ahnung warum des so net richtig funzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171887</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Thu, 09 Nov 2006 23:03:22 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Fri, 10 Nov 2006 01:21:27 GMT]]></title><description><![CDATA[<p>Ich weiss, unter Linux debuggen ist Nicht Lustig (tm), aber kannst du mal durchsteppen und gucken wo etwas schief geht und was? Wäre wohl am einfachsten <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/1171898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171898</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 10 Nov 2006 01:21:27 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Fri, 10 Nov 2006 11:23:34 GMT]]></title><description><![CDATA[<p>hmm...mal ne blöde frage jetzt...meinst du mim durchsteppen das durchsteppen der stl-extensions der hash_map.* oder was? Weil die find operation ist ja net mein code.....<br />
also nur nochmal kurz in diesem zusammenhang: wenn ich denselben pointer übergebe dann gehts - nur wenn ich einen anderen poitner der auf ein anderes array zeigt (was aber völlig identisch ist) - dann gehts eben net....vielleicht ist auch meine implemenierung einfach mist? Wenn jemand andere vorschläge hat - sehr gern - zumindest was die schlüsselstruktur betrifft.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172099</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Fri, 10 Nov 2006 11:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to hash_map: insert operation sehr teuer? Warum? on Mon, 13 Nov 2006 00:37:37 GMT]]></title><description><![CDATA[<p>also jetzt werden die richtigen ergebnisse - zumindest mittels hash-funktion.</p>
<p>Ich frage mich jetzt ob die daten die im hash drin sind so auch nicht überschrieben werden? Ich übergebe ja nur pointer in die funktion und speichere doch so nur die pointer in der hash-Map. wenn ich außerhalb dann die array verändere müssten sich nicht dann auch die daten in der map verändern? Weil drin sind ja nur pointer die auf das erste element zeigen? Wäre sehr nett wenn mir diesbezüglcih jemand helfen könnte....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1173339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1173339</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Mon, 13 Nov 2006 00:37:37 GMT</pubDate></item></channel></rss>