<?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[&amp;lt;map&amp;gt; Key vorhanden?]]></title><description><![CDATA[<p>Ich habe eine &lt;map&gt; vorliegen und will nachschauen, ob ein key bereits enthalten ist. Leider finde ich keine simple Methode, die einfach bool zurückliefert (wie z.B. containsKey oder so). Ich finde nur eine Methode find() und für diese braucht man einen iterator, dabei will ich ja nur in einer if-Anweisung wissen, ob der Key verhanden ist und den Quelltext nicht mit vielen iterators unübersichtlich machen.</p>
<p>Ich wollte schon einen eigene contains Methode schreiben, da ich jedoch eine verschachtelte map-Struktur</p>
<pre><code class="language-cpp">map&lt;string, map&lt;string, map&lt;string, map&lt;string, map &lt;string, string&gt; &gt; &gt; &gt; &gt;
</code></pre>
<p>verwende, müsste ich dafür mind. erstmal ein Template anlegen, weil er ja sonst für die Methode ein Übergabeparameter braucht und der ist ja, je nach Ebene, von einem anderen Typ.</p>
<p>Gibts da nicht was einfaches für?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184778/lt-map-gt-key-vorhanden</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 01:24:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184778.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Jun 2007 08:28:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:29:11 GMT]]></title><description><![CDATA[<p>Ich habe eine &lt;map&gt; vorliegen und will nachschauen, ob ein key bereits enthalten ist. Leider finde ich keine simple Methode, die einfach bool zurückliefert (wie z.B. containsKey oder so). Ich finde nur eine Methode find() und für diese braucht man einen iterator, dabei will ich ja nur in einer if-Anweisung wissen, ob der Key verhanden ist und den Quelltext nicht mit vielen iterators unübersichtlich machen.</p>
<p>Ich wollte schon einen eigene contains Methode schreiben, da ich jedoch eine verschachtelte map-Struktur</p>
<pre><code class="language-cpp">map&lt;string, map&lt;string, map&lt;string, map&lt;string, map &lt;string, string&gt; &gt; &gt; &gt; &gt;
</code></pre>
<p>verwende, müsste ich dafür mind. erstmal ein Template anlegen, weil er ja sonst für die Methode ein Übergabeparameter braucht und der ist ja, je nach Ebene, von einem anderen Typ.</p>
<p>Gibts da nicht was einfaches für?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308864</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:29:11 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:38:43 GMT]]></title><description><![CDATA[<p>find ist doch das was du suchst? Und mit Iteratoren muß du nicht rumhantieren. Du bekommst bei find einen Iterator zurück, richtig. Aber den kannst du ja in einer if-Abfrage benutzen. Mußt ihn nur mit end() vergleichen. Wenn er mit end() gleich ist, ist es gleichbedeutend mit false.</p>
<pre><code class="language-cpp">if( mymap.find(&quot;hallo&quot;) == mymap.end() ) // false

if( mymap.find(&quot;hallo&quot;) != mymap.end() ) // true
</code></pre>
<p>end steht in den C++-Containern immer für ungültig. Weil end <strong>hinter</strong> das letzte Element zeigt.</p>
<p>Oder wo liegt genau dein Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308872</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:38:43 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:41:57 GMT]]></title><description><![CDATA[<p>Stimmt! Und ich habs sogar genau so gemacht, aber das will irgendwie nicht!</p>
<p>Es funktioniert zwar bei der ersten Ebene:</p>
<pre><code class="language-cpp">if(mapEbene1.find(stringEbene1) == mapEbene1.end())
</code></pre>
<p>Aber nicht mehr bei der Ebene darunter:</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].find(stringEbene2) == mapEbene2.end())
</code></pre>
<p>Dann kommt:</p>
<blockquote>
<p>error C2678: Binaerer Operator '==' : Kein Operator definiert, der einen linksseitigen Operator vom Typ 'class std::_Tree&lt;class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class s</p>
</blockquote>
<p>Daher dachte ich, dass es vielleicht noch ne andere Möglichkeit gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308875</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:41:57 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:43:54 GMT]]></title><description><![CDATA[<p>Ups: Ich glaube es liegt wohl hierdran:</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].find(stringEbene2) == mapEbene2.end())
</code></pre>
<p>Muss sein</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].find(stringEbene2) == mapEbene1[stringEbene1].end())
</code></pre>
<p>Das war wohl Unachtsamkeit! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308879</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:43:54 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:45:05 GMT]]></title><description><![CDATA[<p>Wie wäre es dann damit</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].second.find(stringEbene2) == mapEbene2.end())
</code></pre>
<p>Die innere map ist doch der wert der äußeren map.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308881</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:45:05 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:47:40 GMT]]></title><description><![CDATA[<p>Das mit dem second kannte ich noch nicht. Aber nach meiner Änderung funktionierts! Danke euch beiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308886</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:47:40 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:51:47 GMT]]></title><description><![CDATA[<p>plizer schrieb:</p>
<blockquote>
<p>Ups: Ich glaube es liegt wohl hierdran:</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].find(stringEbene2) == mapEbene2.end())
</code></pre>
<p>Muss sein</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].find(stringEbene2) == mapEbene1[stringEbene1].end())
</code></pre>
<p>Das war wohl Unachtsamkeit! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Ja links und rechts sollte schon die gleiche Ebene sein. <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="😃"
    /> Ist doch cool, das C++ gleich beim Kompilieren meckert, oder? Bei deiner vorherigen Sprache wärste erst zur Laufzeit auf den Fehler gestossen... wenn nicht sogar erst wenn es beim Kunden gelaufen wäre. <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/1308890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308890</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:51:47 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:52:28 GMT]]></title><description><![CDATA[<p>plizer schrieb:</p>
<blockquote>
<p>Das mit dem second kannte ich noch nicht. Aber nach meiner Änderung funktionierts! Danke euch beiden.</p>
</blockquote>
<p>first = key<br />
second = value</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308893</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:52:28 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 08:59:53 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>plizer schrieb:</p>
<blockquote>
<p>Ups: Ich glaube es liegt wohl hierdran:</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].find(stringEbene2) == mapEbene2.end())
</code></pre>
<p>Muss sein</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].find(stringEbene2) == mapEbene1[stringEbene1].end())
</code></pre>
<p>Das war wohl Unachtsamkeit! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Ja links und rechts sollte schon die gleiche Ebene sein. <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="😃"
    /> Ist doch cool, das C++ gleich beim Kompilieren meckert, oder? Bei deiner vorherigen Sprache wärste erst zur Laufzeit auf den Fehler gestossen... wenn nicht sogar erst wenn es beim Kunden gelaufen wäre. <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>
</blockquote>
<p>Hehe, das stimmt wohl! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1308899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308899</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 08:59:53 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 09:03:52 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Wie wäre es dann damit</p>
<pre><code class="language-cpp">if(mapEbene1[stringEbene1].second.find(stringEbene2) == mapEbene2.end())
</code></pre>
<p>Die innere map ist doch der wert der äußeren map.</p>
</blockquote>
<p>Aber operator[] gibt kein pair zurück <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/1308902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308902</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 19 Jun 2007 09:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 09:30:54 GMT]]></title><description><![CDATA[<p>Stimmt, ich nehmen meine (falsche) Antwort zurück. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Der Operator[] gibt ja schon den Wert zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308931</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 19 Jun 2007 09:30:54 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 10:20:32 GMT]]></title><description><![CDATA[<p>Ich suche nun eine Möglichkeit eine &lt;map&gt; auszulesen! Dies hier ist meine map:</p>
<pre><code class="language-cpp">map&lt;string, map&lt;string, map&lt;string, map&lt;string, map&lt;string, string&gt; &gt; &gt; &gt; &gt;
</code></pre>
<p>Dazu benötige ich ja sicherlich einen Iterator. Wie komme ich nur da dran? Folgende Methoden gibt es in &lt;map&gt; ja:</p>
<pre><code class="language-cpp">iterator begin();
const_iterator begin() const;
iterator end();
iterator end() const;
</code></pre>
<p>Mit begin() müsste es ja möglich sein. Aber ich bekomme bei</p>
<pre><code class="language-cpp">iterator it = mapEbene1.begin();
</code></pre>
<p>die Fehlermeldung:</p>
<blockquote>
<p>error C2955: 'iterator' : Fuer die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich<br />
error C2514: 'std::iterator' : Klasse besitzt keine Konstruktoren<br />
error C2262: 'it' : Zerstoerung nicht moeglich</p>
</blockquote>
<p>Irgendwie muss ich ihm wahrs. auch noch sagen, wie genau der Datentyp map aufgebaut ist? Aber keine Ahnung wo oder wie.</p>
<p>Das Problem ist, dass ich weder in Büchern noch über Suchmaschinen kleine Beispieltexte finde :(. Im Grunde wird sowas doch tausendfach eingesetzt. (oder es kriegen alle instinktiv hin). In der MSDN hab ich auch nichts finden können und somit lieg ich wieder wie ne Schildkröte auf dem Rücken ;-(.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308958</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 10:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 10:33:13 GMT]]></title><description><![CDATA[<p>Soweit bin ich &quot;schon&quot;:</p>
<pre><code class="language-cpp">map&lt;string, map&lt;string, map&lt;string, map&lt;string, map&lt;string, string&gt; &gt; &gt; &gt; &gt; ::iterator it = mapRealteile.begin();
</code></pre>
<p>aber leider kann man bei meinem uralt VC6 auch nicht sehen, welche Methoden ein Objekt hat und muss oft dann immer manuell nach jeder Methode manuell nachschauen. Da verliert man ja schon Stunden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308960</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 10:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 10:40:58 GMT]]></title><description><![CDATA[<p>Der Rückgabewert der map funktion ist nicht std::iterator sondern<br />
map&lt;...&gt;::iterator<br />
also so:</p>
<pre><code class="language-cpp">map&lt;int,int&gt; intMap;
map&lt;int,int&gt;::iterator mapIter = intMap.begin();
while (mapIter != intMap.end())
{
   cout &lt;&lt; mapIter-&gt;first/*oder second*/;
   mapIter++;
}
</code></pre>
<p>oder auch mit for</p>
<pre><code class="language-cpp">for (mapIter = intMap.begin(); mapIter != intMap.end(); mapIter++)
{
   ....
}
</code></pre>
<p>Soweit so gut.<br />
Installier Dir VC++ Express edition</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308963</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Tue, 19 Jun 2007 10:40:58 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 10:41:30 GMT]]></title><description><![CDATA[<p>Mal ein anderer Ansatz:<br />
Wenn ich mir die Map mit der Rekursion so ansehe, dann vermute ich, dass Du Dein Prg. etwas übersichtlicher gestalten könntest, wenn Du die 'Knoten' der 'Stückliste' in eigene Objekte kapselst.<br />
Da könntest Du dann am Objekt selbst so etwas wie eine child-map und 'getChildWithName(String)' implementieren, damit wäre auch die Anzahl der Ebenen absolut variabel.</p>
<p>Ist nur so eine Idee.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308964</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 19 Jun 2007 10:41:30 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 11:10:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15807">@plizer</a>! Es ist dir anzuraten dich genauer mit den Basics von Containern und Algorithmen zu beschäftigen. Denn die Iteratoren usw. funktionieren für jeden Container-Typ gleich. Deshalb wirst du tatsächlich nicht speziell für die map großartig Beispiele finden. Wäre praktisch für jeden Container ewige Widerholungen.</p>
<p>Weiß nicht ob dir das hilft:<br />
<a href="http://www.kharchi.de/iteratoren.html" rel="nofollow">http://www.kharchi.de/iteratoren.html</a></p>
<p>Ein Iterator selbst hat nicht viele Methoden. Er dient ja nur als Schnittstelle zwischen Algorithmus und Container. Und jeder Container stellt einen Iterator-Typ bereit. Was willst du denn am Ende erreichen?</p>
<p>Den Iterator hast du ja schon geholt, in deinem letzten Posting. Aber wenn du z.B. alle Elemente einer Map abarbeiten willst, mußt du dafür einen Algorithmus anwenden. Z.B. std::for_each, std::transform usw. Wie man diese anwendet, sind auch ein paar kleine Grundlagen. Müsste eigentlich in deinem C++-Buch drin stehen, wie man Funktionsobjekte u.ä. anwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1308997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1308997</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 19 Jun 2007 11:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 11:18:42 GMT]]></title><description><![CDATA[<p>Noch als Tip, damit du dir nicht jedes Mal nen Zahn abbrichst bei deinem wirklich nicht gerade unkomplexen map-Konstrukt:</p>
<pre><code class="language-cpp">typedef std::map&lt;string, map&lt;string, map&lt;string, map&lt;string, map&lt;string, string&gt; &gt; &gt; &gt; &gt;  MyComplexMap;

// anwenden:
MyComplexMap::iterator iter = mapRealteile.begin();
</code></pre>
<p>MyComplexMap ist dann einfach ein Alias-Name, den du überall einsetzen kannst. Nicht nur bei dem Iterator. Wird der Code auch übersichtlicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309007</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 19 Jun 2007 11:18:42 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Tue, 19 Jun 2007 11:40:53 GMT]]></title><description><![CDATA[<p>Eure beiden Posting haben mir wieder gut weitergeholfen! <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>Ist ja recht logisch, warum man speziell zur map natürlich keine Quellcode-Beispiele findet! Das mit dem Typedef vereinfacht die Übersicht allerdings! Danke für den Link, ich werde da mal durchschauen.</p>
<p>Ich will ja immernoch den Baum aufbauen. Ich habe das auch geschafft, nur ist die Performance viel zu schlecht. Daher mache ich jetzt die Operationen mit der map und übernehme dann die Struktur am Ende nurnoch in das CTreeCtrl, dürfte dann um einiges schneller sein. Ich hoffe mit den Infos komme ich zum Ende mit dem kleinen Programm :-).</p>
<p>Auf jeden Fall wär ich ohne das Forum hier noch lange nicht so weit gewesen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309035</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Tue, 19 Jun 2007 11:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:09:18 GMT]]></title><description><![CDATA[<p>Ich habe nun einiges zu den Iteratoren gelesen. Aber da sich die map ja im Vergleich zu den Listen unterscheidet, weiss ich immer noch nicht, wie ich eine map komplett auslesen kann. Weil first und second kennt mein iterator nicht (wie von templäd vorgeschlagen) und ich habe noch keine weitere Möglichkeit gefunden an den Key zu kommen. Im Prinzip sollte es doch sowas geben:</p>
<p>Iterator anlegen<br />
Iterator der map zuordnen</p>
<p>Iterator auf erstes Element setzen<br />
getKey, getValue</p>
<p>Interator auf nächstes Element setzen<br />
getKey, getValue</p>
<p>usw...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309600</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:18:00 GMT]]></title><description><![CDATA[<p>plizer schrieb:</p>
<blockquote>
<p>Ich habe nun einiges zu den Iteratoren gelesen. Aber da sich die map ja im Vergleich zu den Listen unterscheidet, weiss ich immer noch nicht, wie ich eine map komplett auslesen kann. Weil first und second kennt mein iterator nicht (wie von templäd vorgeschlagen) und ich habe noch keine weitere Möglichkeit gefunden an den Key zu kommen. Im Prinzip sollte es doch sowas geben:</p>
</blockquote>
<p>Klar kennt der Iterator first und second - zeig doch mal, was du gemacht hast.</p>
<blockquote>
<p>Iterator anlegen<br />
Iterator der map zuordnen</p>
</blockquote>
<p>Anlegen kannst du ihn durch eine einfache Definition <code>map_typ::iterator pos;</code> , explizit einer Map zuordnen mußt du ihn vorerst nicht (das passiert im nächsten Schritt automatisch)</p>
<blockquote>
<p>Iterator auf erstes Element setzen</p>
</blockquote>
<p>Den Iterator auf den Anfang liefert die Methode begin(): <code>pos=meine_map.begin();</code> (damit hast du indirekt auch die Zuordnung zur Map hergestellt)</p>
<blockquote>
<p>getKey, getValue</p>
</blockquote>
<p><code>pos-&gt;first;</code> liefert den Schlüssel, <code>pos-&gt;second;</code> den zugehörigen Wert.</p>
<blockquote>
<p>Interator auf nächstes Element setzen</p>
</blockquote>
<p>Das geht wie bei jedem anderen Iterator (und Zeiger) auch per <code>++pos;</code></p>
<p>PS: Und um zu erkennen, ob du am Ende der Map bist, kannst du 'pos' vergleichen mit 'meine_map.end()'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309615</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:25:09 GMT]]></title><description><![CDATA[<p>Ja, so habe ich das eigentlich gemacht!<br />
Mal ein Beispiel:</p>
<pre><code class="language-cpp">map&lt;string, string&gt; myMap;
myMap.insert(make_pair(&quot;1&quot;, &quot;Eins&quot;));
myMap.insert(make_pair(&quot;2&quot;, &quot;Zwei&quot;));
myMap.insert(make_pair(&quot;3&quot;, &quot;Drei&quot;));

map&lt;string, string&gt;::iterator myIter = myMap.begin();
while(myIter != myMap.end()) {
	cout &lt;&lt; myIter.first;
}
</code></pre>
<p>Dann kommt die Fehlermeldung:</p>
<blockquote>
<p>error C2039: 'first' : Ist kein Element von 'iterator'</p>
</blockquote>
<p>Woran kann das liegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309618</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:25:09 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:32:04 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Iteratoren sind &quot;Zeiger&quot; auf Elemente. Dementsprechend musst Du mit &quot;-&gt;&quot; und nicht mit &quot;.&quot; dereferenzieren.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309623</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:32:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:32:27 GMT]]></title><description><![CDATA[<p>oja, thx! <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=":/"
      alt="😕"
    /></p>
<p>Aber mit &quot;-&gt;&quot; statt &quot;.&quot; funktionierts so ja auch direkt nicht. Muss ich dann nicht mit &quot;new&quot; arbeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309626</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:32:27 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:33:57 GMT]]></title><description><![CDATA[<p>Vor 10 Jahren bin ich mit C++ angefangen und hatte das mit den Zeigern auch soweit verstanden, aber nach 7 Jahren Java geht das wahrscheinlich nie wieder in mein Hirn rein :(.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309629</guid><dc:creator><![CDATA[plizer]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:33:57 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:36:57 GMT]]></title><description><![CDATA[<p>Also eigentlich ist das doch gar nicht so anders ... nur musst Du eben &quot;-&gt;&quot; nehmen statt &quot;.&quot; <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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309632</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:36:57 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;lt;map&amp;gt; Key vorhanden? on Wed, 20 Jun 2007 07:37:57 GMT]]></title><description><![CDATA[<p>Ein new ist hier nicht nötig. Lediglich</p>
<pre><code class="language-cpp">myIter-&gt;first;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1309633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309633</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 20 Jun 2007 07:37:57 GMT</pubDate></item></channel></rss>