<?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[Strings zu einer ID umwandeln]]></title><description><![CDATA[<p>Hi,<br />
ich muss aus mehreren Strings eine einmalige ID Nr. erstellen die ich dann auch verwenden kann um zu überprüfen ob es schon einen Eintrag mit der selben ID giebt.</p>
<p>Also ich habe mir das so vorgestellt:</p>
<p>string string1 = &quot;hallo&quot;;<br />
string string2 = &quot;blubb&quot;<br />
string string3 = &quot;ka&quot;;<br />
string ....<br />
string fstring;</p>
<p>fsting = string1 + string2 + string3 + ....</p>
<p>und jetzt den fstring in eine ID umwandeln, die ihn Einmalig macht ausser man wuerde natuerlich noch einmal die selben Daten für string1, 2, 3 usw. eingeben.</p>
<p>Habe erst gedacht ich zähle einfach die Anzahl der Buchstaben in fstring, dachte mir aber dann, dass dies zu ungenau sei. Mir faellt nichts ein bzw. weiß net wie ich es realisieren soll, dass am Ende der fstring in eine einmalige Zahl umgewandelt wird.</p>
<p>vllt. die Bitgröße berechnen, habe ich aber ka wie.</p>
<p>Hoffe mir kann da jemand helfen</p>
<p>Rgds<br />
Coda</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199281/strings-zu-einer-id-umwandeln</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 13:43:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199281.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Nov 2007 17:04:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Strings zu einer ID umwandeln on Fri, 30 Nov 2007 17:04:34 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich muss aus mehreren Strings eine einmalige ID Nr. erstellen die ich dann auch verwenden kann um zu überprüfen ob es schon einen Eintrag mit der selben ID giebt.</p>
<p>Also ich habe mir das so vorgestellt:</p>
<p>string string1 = &quot;hallo&quot;;<br />
string string2 = &quot;blubb&quot;<br />
string string3 = &quot;ka&quot;;<br />
string ....<br />
string fstring;</p>
<p>fsting = string1 + string2 + string3 + ....</p>
<p>und jetzt den fstring in eine ID umwandeln, die ihn Einmalig macht ausser man wuerde natuerlich noch einmal die selben Daten für string1, 2, 3 usw. eingeben.</p>
<p>Habe erst gedacht ich zähle einfach die Anzahl der Buchstaben in fstring, dachte mir aber dann, dass dies zu ungenau sei. Mir faellt nichts ein bzw. weiß net wie ich es realisieren soll, dass am Ende der fstring in eine einmalige Zahl umgewandelt wird.</p>
<p>vllt. die Bitgröße berechnen, habe ich aber ka wie.</p>
<p>Hoffe mir kann da jemand helfen</p>
<p>Rgds<br />
Coda</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413073</guid><dc:creator><![CDATA[Coda*linux.PrayLoad]]></dc:creator><pubDate>Fri, 30 Nov 2007 17:04:34 GMT</pubDate></item><item><title><![CDATA[Reply to Strings zu einer ID umwandeln on Fri, 30 Nov 2007 17:06:29 GMT]]></title><description><![CDATA[<p>Das Zauberwort heißt &quot;Hash&quot;. Beispielsweise MD5.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413075</guid><dc:creator><![CDATA[großer zeh++]]></dc:creator><pubDate>Fri, 30 Nov 2007 17:06:29 GMT</pubDate></item><item><title><![CDATA[Reply to Strings zu einer ID umwandeln on Fri, 30 Nov 2007 20:37:00 GMT]]></title><description><![CDATA[<p>Von Zauberei lässt man sich leicht täuschen: Hash-Funktionen liefern nur <strong>nahezu</strong> eindeutige Werte.</p>
<p>Wirklich eineindeutige Werte bekommt man nur durch eine bijektive Abbildung.<br />
ZB. kann man diese in einer std::map<a href="std::string,int" rel="nofollow">std::string,int</a> speichern: Wenn ein String schon in der Map existiert, wird seine ID zurückgegeben, sonst wird eine neue ID erzeugt (letzte ID +1), der String mit dieser hinzugefügt und die ID zurückgegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413134</guid><dc:creator><![CDATA[deha]]></dc:creator><pubDate>Fri, 30 Nov 2007 20:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to Strings zu einer ID umwandeln on Sat, 01 Dec 2007 14:57:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class foo
{
    std::map&lt;std::string, std::size_t&gt; m_fstring;
    void push_back(std::string const&amp; str) { static std::size_t id(0); m_fstring.insert(std::make_pair(str, id++)); }

public:
    std::size_t get_id(std::string const&amp; str) const
    { 
        std::map&lt;std::size_t, std::string&gt;::const_iterator it(m_fstring.find(str));
        return it != m_fstring.end() ? (*it).first : (push_back(str), get_id(str));
    }
};
</code></pre>
<p>so ... damit kannst du das ganz einfach so nutzen:</p>
<pre><code class="language-cpp">int main()
{
    foo inst;
    std::cout &lt;&lt; inst.get_id(&quot;Das ist ein String&quot;) &lt;&lt; std::endl;
    std::cout &lt;&lt; inst.get_id(&quot;Das ist ein String&quot;) &lt;&lt; std::endl;
    std::cout &lt;&lt; inst.get_id(&quot;Das ist ein anderer String&quot;) &lt;&lt; std::endl;
}
</code></pre>
<p>=&gt; Dem String wird eine eindeutige ID zugewiesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413193</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 01 Dec 2007 14:57:36 GMT</pubDate></item><item><title><![CDATA[Reply to Strings zu einer ID umwandeln on Sat, 01 Dec 2007 10:01:07 GMT]]></title><description><![CDATA[<p>Ich würde die Elemente der Map vertauschen:</p>
<pre><code class="language-cpp">std::map&lt;std::string, std::size_t&gt;
</code></pre>
<p>Dann ist die Suche nach dem Namen nämlich effizienter (O(log N) stat O(N)), denn dafür soll ja eine Map verwendet werden!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413266</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sat, 01 Dec 2007 10:01:07 GMT</pubDate></item><item><title><![CDATA[Reply to Strings zu einer ID umwandeln on Sat, 01 Dec 2007 14:21:54 GMT]]></title><description><![CDATA[<p>Danke, dass sieht schon mal ganz gut aus, ich werde es mal probieren.</p>
<p>Rgds<br />
Coda</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413374</guid><dc:creator><![CDATA[Coda*linux.PrayLoad]]></dc:creator><pubDate>Sat, 01 Dec 2007 14:21:54 GMT</pubDate></item></channel></rss>