<?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[ist es sowas map&amp;lt;std:string, void*&amp;gt; myMap; möglich?]]></title><description><![CDATA[<p>hi Experten, ich habe eine .txt datei, die so aufgebaut ist:<br />
1 wertuzzui<br />
2 fdsggjjjkk<br />
3 dhhjjkolp<br />
usw. insgesamt 2 Mio Einträge<br />
Jetzt die Aufgabe: ich muss nach der Eingabe von 2 den String:fdsggjjjkk kriegen, anders gesagt ich muss in dieser Datei suchen und Ergebnis ausgeben, und das in kürzester Zeit.<br />
meine bisherige lösung sieht so aus:<br />
[code]<br />
myFile.open(&quot;abc.txt&quot;);</p>
<p>if(myFile.is_open())<br />
{<br />
std::string answ;<br />
std::string buf;<br />
for(int i=0; i&lt;2000000; i++)<br />
{<br />
myFile &gt;&gt;key;<br />
myFile &gt;&gt;code;<br />
myMap.insert(std::make_pair(std::string(key), std::string(code)));<br />
}</p>
<p>do<br />
{<br />
cin&gt;&gt;key;</p>
<p>if(it == myMap.end())<br />
{<br />
cout&lt;&lt;&quot;not found&quot;&lt;&lt;endl;<br />
}<br />
else<br />
{<br />
cout&lt;&lt;(it-&gt;second)&lt;&lt;endl;<br />
}</p>
<p>cin&gt;&gt;answ;<br />
}while( answ == &quot;j&quot; );<br />
}<br />
else<br />
{<br />
cout&lt;&lt;&quot;Can't open file&quot;&lt;&lt;endl;<br />
exit(1);<br />
}<br />
myFile.close();</p>
<p>Ich lese die ganze Datei in map aus und dann suche dort,<br />
aber habe gehört es könnte man auch anders machen und zwar nicht den ganzen inhalt in map auslesen, sondern nur 1. string und die Adresse auf diesen String in map speichern, dann in map nach passendem String suchen und mir der Adresse in die .txt datei an die best. Stelle reinspringen und 2 String ausgeben. gibt es so was: map&lt;string, void*&gt; myMap;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129300/ist-es-sowas-map-lt-std-string-void-gt-mymap-möglich</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 03:38:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129300.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Dec 2005 13:30:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ist es sowas map&amp;lt;std:string, void*&amp;gt; myMap; möglich? on Mon, 12 Dec 2005 13:30:17 GMT]]></title><description><![CDATA[<p>hi Experten, ich habe eine .txt datei, die so aufgebaut ist:<br />
1 wertuzzui<br />
2 fdsggjjjkk<br />
3 dhhjjkolp<br />
usw. insgesamt 2 Mio Einträge<br />
Jetzt die Aufgabe: ich muss nach der Eingabe von 2 den String:fdsggjjjkk kriegen, anders gesagt ich muss in dieser Datei suchen und Ergebnis ausgeben, und das in kürzester Zeit.<br />
meine bisherige lösung sieht so aus:<br />
[code]<br />
myFile.open(&quot;abc.txt&quot;);</p>
<p>if(myFile.is_open())<br />
{<br />
std::string answ;<br />
std::string buf;<br />
for(int i=0; i&lt;2000000; i++)<br />
{<br />
myFile &gt;&gt;key;<br />
myFile &gt;&gt;code;<br />
myMap.insert(std::make_pair(std::string(key), std::string(code)));<br />
}</p>
<p>do<br />
{<br />
cin&gt;&gt;key;</p>
<p>if(it == myMap.end())<br />
{<br />
cout&lt;&lt;&quot;not found&quot;&lt;&lt;endl;<br />
}<br />
else<br />
{<br />
cout&lt;&lt;(it-&gt;second)&lt;&lt;endl;<br />
}</p>
<p>cin&gt;&gt;answ;<br />
}while( answ == &quot;j&quot; );<br />
}<br />
else<br />
{<br />
cout&lt;&lt;&quot;Can't open file&quot;&lt;&lt;endl;<br />
exit(1);<br />
}<br />
myFile.close();</p>
<p>Ich lese die ganze Datei in map aus und dann suche dort,<br />
aber habe gehört es könnte man auch anders machen und zwar nicht den ganzen inhalt in map auslesen, sondern nur 1. string und die Adresse auf diesen String in map speichern, dann in map nach passendem String suchen und mir der Adresse in die .txt datei an die best. Stelle reinspringen und 2 String ausgeben. gibt es so was: map&lt;string, void*&gt; myMap;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940197</guid><dc:creator><![CDATA[Lehrling]]></dc:creator><pubDate>Mon, 12 Dec 2005 13:30:17 GMT</pubDate></item><item><title><![CDATA[Reply to ist es sowas map&amp;lt;std:string, void*&amp;gt; myMap; möglich? on Mon, 12 Dec 2005 13:37:25 GMT]]></title><description><![CDATA[<p>Du kannst dort einen beliebigen Datentyp als Werte in die Map eintragen - allerdings müsstest du bei einer void*-Map selber den Speicherplatz verwalten. (und da ist mir eine string-Map doch lieber)</p>
<p>PS: Ich weiß nicht, ob es Absicht ist, aber in deinem Code fehlt der Suchen-Befehl <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>PPS: Wenn du alle Schlüsselwerte von 1 bis 2 Millionen hintereinander hast, empfehle ich eher einen vector&lt;string&gt; als deine Map.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940207</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 12 Dec 2005 13:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to ist es sowas map&amp;lt;std:string, void*&amp;gt; myMap; möglich? on Mon, 12 Dec 2005 13:41:34 GMT]]></title><description><![CDATA[<p>teste lieber auf End Of File, anstatt dich auf 2 Mio festzulegen. Und wenn du nur diesen Einganstrig suchst, dann teste doch sofort in Der Ausleschleife, anstatt die gesamte Datei in den Speicher zu laden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940213</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 12 Dec 2005 13:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to ist es sowas map&amp;lt;std:string, void*&amp;gt; myMap; möglich? on Mon, 12 Dec 2005 13:45:36 GMT]]></title><description><![CDATA[<p>aber ich muss getrennt auf 1 oder 2 string in einer Zeile greifen können,</p>
<p>den suchbefehl habe ich aus versehen beim kopieren gelöscht es ist natürlich:<br />
std::map&lt;std::string, std::string&gt;::iterator it = myMap.find(key);</p>
<p>wg.längeren Lesezeiten muss es lieber map mit zeiger auf die Speicheradresse sein. könnte mir da jemand ein Beispielcode zeigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940224</guid><dc:creator><![CDATA[Lehrling]]></dc:creator><pubDate>Mon, 12 Dec 2005 13:45:36 GMT</pubDate></item></channel></rss>