<?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[maps]]></title><description><![CDATA[<p>huhu,<br />
und zwar bräucht ich ma bissel hilfe zu c++, sind gerade damit neu angefangen, müssen nen programm was wir bekommen haben erweitern, jetzt gehts um maps, und die sieht volgendermaßen in der H-file vorgegeben aus:</p>
<p>map&lt;int, Tier *&gt; * tiere;<br />
wie kann ich jetzt hier nen tier zufügen? ich dachte mir was mit</p>
<pre><code class="language-cpp">tiere-&gt;insert(make_pair(tiernummer, new Tier(tierNummer, tierSorte, tierAlter));
tierNummer++;
</code></pre>
<p>nur bei der map is ja nen pointer mit angegeben, und da blick ich absolut noch nicht durch <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="😞"
    /></p>
<p>danke danke für eure hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174139/maps</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 13:46:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174139.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Feb 2007 10:04:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 10:04:28 GMT]]></title><description><![CDATA[<p>huhu,<br />
und zwar bräucht ich ma bissel hilfe zu c++, sind gerade damit neu angefangen, müssen nen programm was wir bekommen haben erweitern, jetzt gehts um maps, und die sieht volgendermaßen in der H-file vorgegeben aus:</p>
<p>map&lt;int, Tier *&gt; * tiere;<br />
wie kann ich jetzt hier nen tier zufügen? ich dachte mir was mit</p>
<pre><code class="language-cpp">tiere-&gt;insert(make_pair(tiernummer, new Tier(tierNummer, tierSorte, tierAlter));
tierNummer++;
</code></pre>
<p>nur bei der map is ja nen pointer mit angegeben, und da blick ich absolut noch nicht durch <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="😞"
    /></p>
<p>danke danke für eure hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233953</guid><dc:creator><![CDATA[MiMi85]]></dc:creator><pubDate>Fri, 23 Feb 2007 10:04:28 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 10:16:35 GMT]]></title><description><![CDATA[<p>Der Code ist doch richtig, mal von innen nach außen aufgelöst:</p>
<ol>
<li><code>new Tier(...)</code> erzeugt ein Tier auf dem Heap und gibt einen Zeiger darauf zurück</li>
<li><code>make_pair(tiernummer,new Tier(...))</code> fasst die Nummer und diesen Zeiger zu einem pair&lt;int,Tier*&gt; zusammen</li>
<li><code>tiere-&gt;</code> dereferenziert den Zeiger &quot;tiere&quot; und greift auf dessen Member (in dem Fall die Methode insert()) zu</li>
<li><code>tiere-&gt;insert(...)</code> nimmt das pair&lt;&gt; aus b und fügt es in die map ein</li>
</ol>
<p>(du mußt nur darauf achten, daß du vor dem Programmende alle Tiere wieder per delete entsorgst)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233962</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 23 Feb 2007 10:16:35 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 10:26:00 GMT]]></title><description><![CDATA[<p>oke... soweit klar nur den letzten punkt mit dem</p>
<blockquote>
<p>du mußt nur darauf achten, daß du vor dem Programmende alle Tiere wieder per delete entsorgst</p>
</blockquote>
<p>versteh ich net ganz, das hat glaub ich was mit dem destructor zu tun oder?</p>
<pre><code>Tierzoo::~Tierzoo() {
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1233970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233970</guid><dc:creator><![CDATA[mimi85]]></dc:creator><pubDate>Fri, 23 Feb 2007 10:26:00 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 10:28:11 GMT]]></title><description><![CDATA[<p>Ja, innerhalb dessen musst Du die einzelnen Elemente in der map per delete löschen, weil Du sie mit new erzeugst.</p>
<p>edit: typo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233974</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 23 Feb 2007 10:28:11 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 10:28:23 GMT]]></title><description><![CDATA[<p>Ja, genau - das ist die (vermutlich) richtige Stelle, um den Speicher wieder freizugeben:</p>
<pre><code class="language-cpp">for(map&lt;int,Tier*&gt;::iterator pos=tiere-&gt;begin();pos!=tiere-&gt;end();++pos)
  delete pos-&gt;second;
delete tiere;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1233975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233975</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 23 Feb 2007 10:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 10:42:24 GMT]]></title><description><![CDATA[<p>oh man, ich hasse es.. immer copy &amp;paste aber keine ahnung worum es geht, warum können wir net einfach nen hello world programms chreiben.. ttzzz ^^... neein.. wir fangen direktt so an..</p>
<p>nungut.. also ihc muss ja jetzt nen tier zufügen die nummer soll aber automatich vergeben werden, darum hatte ich das tiernummer++ aber wo muss ich denn angeben bei welcher nummer der anfängt? weil direkt in der methode steht ja</p>
<pre><code class="language-cpp">int	tierNummer;
</code></pre>
<p>naja und wenn ihc das dann hab muss ich ne übersicht mir ausgeben lassen von allen tieren. da hab ich schon was ausm buch aber wirklich verstehn tu ichs net</p>
<pre><code class="language-cpp">for (map&lt;int, Tier* &gt;::iterator iter = tiere-&gt;begin(); iter!=tiere-&gt;end(); ++iter){
			//tiere werden sortiert nach dem namen ausgegeben
                         cout &lt;&lt; iter-&gt;first;
			iter-&gt;second-&gt;drukaf();
		}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1233982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233982</guid><dc:creator><![CDATA[MiMi85]]></dc:creator><pubDate>Fri, 23 Feb 2007 10:42:24 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 10:47:20 GMT]]></title><description><![CDATA[<p>MiMi85 schrieb:</p>
<blockquote>
<p>oh man, ich hasse es.. immer copy &amp;paste aber keine ahnung worum es geht, warum können wir net einfach nen hello world programms chreiben.. ttzzz ^^... neein.. wir fangen direktt so an..</p>
<p>nungut.. also ihc muss ja jetzt nen tier zufügen die nummer soll aber automatich vergeben werden, darum hatte ich das tiernummer++ aber wo muss ich denn angeben bei welcher nummer der anfängt? weil direkt in der methode steht ja</p>
<pre><code class="language-cpp">int	tierNummer;
</code></pre>
</blockquote>
<p>Am besten gibst du den Startwert gleich hier an als <code>int tierNummer=1;</code></p>
<blockquote>
<p>naja und wenn ihc das dann hab muss ich ne übersicht mir ausgeben lassen von allen tieren. da hab ich schon was ausm buch aber wirklich verstehn tu ichs net</p>
<pre><code class="language-cpp">for (map&lt;int, Tier* &gt;::iterator iter = tiere-&gt;begin(); iter!=tiere-&gt;end(); ++iter){
			//tiere werden sortiert nach dem namen ausgegeben
                         cout &lt;&lt; iter-&gt;first;
			iter-&gt;second-&gt;drukaf();
		}
</code></pre>
</blockquote>
<p>Ein Iterator ist sowas ähnliches wie ein Zeiger (nur daß er die Struktur der unterliegenden Daten kennt), mit begin() und end() holst du dir den Startpunkt und Endpunkt der map. Also kannst du dir die Schleife so vorstellen, daß 'iter' nacheinander auf die einzelnen Map-Elemente zeigt (jedes ist ein pair&lt;const int,Tier*&gt;, also kannst du über iter-&gt;first und iter-&gt;second die beiden Teile des Elements ansprechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233990</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 23 Feb 2007 10:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 11:13:09 GMT]]></title><description><![CDATA[<p>naja danke erstma für deine hilfe, mein eclipse spinnt gerade rum, will net mehr starten <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="😞"
    /> scheiss windoof macht nur probleme beim programmiern, naja ich werd ma versuchen das zu fixen und später nochma mich dran setzen</p>
<p>mimi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233998</guid><dc:creator><![CDATA[MiMi85]]></dc:creator><pubDate>Fri, 23 Feb 2007 11:13:09 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 16:43:04 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>von mir mal ein kleiner Tipp:</p>
<p>MiMi85 schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">map&lt;int, Tier *&gt; * tiere;
</code></pre>
</blockquote>
<p>Ich würde fast wetten, dass es ein</p>
<pre><code class="language-cpp">map&lt;int, Tier *&gt; tiere;
</code></pre>
<p>besser täte. Kommt doch eher selten vor, dass man Container (mit Pointern drin) auf dem Heap braucht.<br />
Damit ersparst Du Dir schonmal eine Pointerebene.</p>
<p>Wenn Tier bei Dir nicht Basisklasse ist, kannst Du Dir sogar das schenken und wirst mit</p>
<pre><code class="language-cpp">map&lt;int, Tier&gt; tiere;
</code></pre>
<p>noch glücklicher (Zweitere Möglichkeit halte ich aber für unwahrscheinlcher - das Ganze klingt nach &quot;Übungsaufgabe Vererbung&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/1234207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234207</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 Feb 2007 16:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 16:54:37 GMT]]></title><description><![CDATA[<p>Ich weiß gar nicht, warum sich alle immer darüber aufregen, wie C++ in deren Schule belernt wird. Ich wäre froh, wenn es bei uns C++ als Stoffgebiet geben würde, aber nein, wir müssen uns mit Prolog einen abbrechen...</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234212</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Fri, 23 Feb 2007 16:54:37 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 17:00:16 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>(falls ich gemeint sein sollte) sorry, ich habe das überhaupt nicht abwertend gemeint !<br />
An dem obigen Ansatz kann ich überhaupt keine pädagogische Fehlkonzeption entdecken ...</p>
<p>WENN mich etwas aufregt, dann, dass Anfänger in char*-Orgien gehetzt werden, statt ihnen string zu zeigen (oder die erste Aufgabe ist, std::vector nachzuprogrammieren <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="🙄"
    /> ). (hier wird das ja im Gegenteil offensichtlich NICHT gemacht)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234218</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 Feb 2007 17:00:16 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 20:57:23 GMT]]></title><description><![CDATA[<p>Nein, das war nicht auf dich bezogen. Bloß mir fällt das im allgemeinen so auf. Und mit char * ist eigentlich nur in einer Hinsicht verständlich, nähmlich das der Lehrer irgendwann auf die WinAPI hinaus will, wo man string ja nicht benutzen kann --&gt; das glaube ich allerdings nicht, da das dann so ca 2 Schuljahre dauern würde, bis er dort ist.</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234341</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Fri, 23 Feb 2007 20:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 22:17:18 GMT]]></title><description><![CDATA[<p>naja ich studier informatik in holland. haben im erstne jahr java gemacht und nun c++, ist schon ne umstellung. und</p>
<pre><code class="language-cpp">map&lt;int, Tier *&gt; * tiere;
</code></pre>
<p>muss so bleiben, ist vorgegeben ^^ und später kommt noch nen container dazu, für jede tiersote einen .. oder so ähnlich</p>
<p>thx mimi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234390</guid><dc:creator><![CDATA[MiMi85]]></dc:creator><pubDate>Fri, 23 Feb 2007 22:17:18 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 23:15:47 GMT]]></title><description><![CDATA[<p>Ominion schrieb:</p>
<blockquote>
<p>...Und mit char * ist eigentlich nur in einer Hinsicht verständlich, nähmlich das der Lehrer irgendwann auf die WinAPI hinaus will, wo man string ja nicht benutzen kann ...</p>
</blockquote>
<p>Erstens halte ich es für EXTREM unwahrscheinlich, dass Informatiklehrer/-dozenten ihre Programmieranfänger üblicherweise ins WinAPI-Dickicht schicken wollen.</p>
<p>Zweitens: Was spricht gegen string::c_str() ? Bloß weil man ab&amp;an einen Standardwrapper (eigentlich immer denselben) für eine bestimmte API nutzen muss, soll jeder mir Pointerarithmetik, Nullterminierung &amp; Co rumärgern ?</p>
<p>Ich glaube, dass die char*-Fixierung eher daher kommt, das da ein paar alte C-Hasen sih &quot;mal eben ein wenig C++ angesehen haben&quot; und nun meinen, vor einen Kurs treten zu können.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234411</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 Feb 2007 23:15:47 GMT</pubDate></item><item><title><![CDATA[Reply to maps on Fri, 23 Feb 2007 23:17:13 GMT]]></title><description><![CDATA[<p>MiMi85 schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">map&lt;int, Tier *&gt; * tiere;
</code></pre>
<p>muss so bleiben, ist vorgegeben ...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Das spricht dafür, dass der Dozent auch keine wirkliche Ahnung hat (umgeschulter Javaist ? Oder Cler ?)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234413</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 Feb 2007 23:17:13 GMT</pubDate></item></channel></rss>