<?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[map lässt sich nicht ausgeben.]]></title><description><![CDATA[<p>hallo,</p>
<p>ich muss euch heute schon wieder belästigen, ich versuche gerade ne map zu schreiben mit einem vector. ich weiß ich könnte auch eine multimap nehmen aber wurde es gerne so verstehen</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;map&gt;
#include &lt;vector&gt;
using namespace std;

int main ()
{
  map&lt;int,vector&lt;string&gt;&gt; mymap;
  map&lt;int,vector&lt;string&gt;&gt;::iterator it;

  mymap[1].push_back(&quot;bla 1&quot;);
  mymap[1].push_back(&quot;bla 2&quot;);
  mymap[1].push_back(&quot;bla 3&quot;);

  mymap[2].push_back(&quot;bla4&quot;);
  maymap[2].push_back(&quot;bla5&quot;);

  // show content:
  for ( it=mymap.begin() ; it != mymap.end(); it++ )
    cout &lt;&lt; (*it).first &lt;&lt; &quot; =&gt; &quot; &lt;&lt; (*it).second &lt;&lt; endl;

}
</code></pre>
<p>problem ist jetzt, er meckert beim cout<br />
Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::vector&lt;_Ty&gt;' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
<p>ich weiß aber nicht wie ich es anderst machen soll <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/310903/map-lässt-sich-nicht-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 05:35:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310903.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Nov 2012 13:56:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 13:56:05 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich muss euch heute schon wieder belästigen, ich versuche gerade ne map zu schreiben mit einem vector. ich weiß ich könnte auch eine multimap nehmen aber wurde es gerne so verstehen</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;map&gt;
#include &lt;vector&gt;
using namespace std;

int main ()
{
  map&lt;int,vector&lt;string&gt;&gt; mymap;
  map&lt;int,vector&lt;string&gt;&gt;::iterator it;

  mymap[1].push_back(&quot;bla 1&quot;);
  mymap[1].push_back(&quot;bla 2&quot;);
  mymap[1].push_back(&quot;bla 3&quot;);

  mymap[2].push_back(&quot;bla4&quot;);
  maymap[2].push_back(&quot;bla5&quot;);

  // show content:
  for ( it=mymap.begin() ; it != mymap.end(); it++ )
    cout &lt;&lt; (*it).first &lt;&lt; &quot; =&gt; &quot; &lt;&lt; (*it).second &lt;&lt; endl;

}
</code></pre>
<p>problem ist jetzt, er meckert beim cout<br />
Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::vector&lt;_Ty&gt;' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
<p>ich weiß aber nicht wie ich es anderst machen soll <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2273413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273413</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Thu, 22 Nov 2012 13:56:05 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 13:59:13 GMT]]></title><description><![CDATA[<p>(*it).second</p>
<p>Das ist ein vector&lt;string&gt;<br />
Der vector kann sich selber aber nicht ausgeben - er weiss ja nicht wie du es gerne hättest. Genauso wie du über die map itertierst und die einzelnen elemenete ausgibst, musst du das bei dem vector auch machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273414</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 22 Nov 2012 13:59:13 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 13:59:33 GMT]]></title><description><![CDATA[<p>Wie würdest du denn die Elemente eines vectors ausgeben, wenn er nicht in einer map steckt?</p>
<pre><code>vector&lt;string&gt; bla;
bla.push_back(&quot;Hallo&quot;)
bla.push_back(&quot;Welt&quot;);

// Ausgabe:
// ???
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273415</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 22 Nov 2012 13:59:33 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 14:02:09 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>problem ist jetzt, er meckert beim cout<br />
Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::vector&lt;_Ty&gt;' akzeptiert (oder keine geeignete Konvertierung möglich)</p>
<p>ich weiß aber nicht wie ich es anderst machen soll <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>
</blockquote>
<p>Naja, das sollte eigentlich auf der Hand liegen. Du schreibst hier manuell eine Ausgabe für die Map, als Schleife. Vermutlich weil du weißt, dass ein einfaches <code>cout &lt;&lt; mymap;</code> nicht funktioniert, weils keinen op &lt;&lt; für std::map gibt.</p>
<p>Das selbe Problem hast du auch beim vector. Die Lösung für das Problem sieht ähnlich aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273416</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 22 Nov 2012 14:02:09 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 14:25:36 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Wie würdest du denn die Elemente eines vectors ausgeben, wenn er nicht in einer map steckt?</p>
<pre><code>vector&lt;string&gt; bla;
bla.push_back(&quot;Hallo&quot;)
bla.push_back(&quot;Welt&quot;);

// Ausgabe:
// ???
</code></pre>
</blockquote>
<p>da würde ich sagen</p>
<p>cout &lt;&lt; bla.[0] &lt;&lt; endl;</p>
<p>hmm aber keine ahnung wie ich des bei ner map machen soll..?<br />
also ich denke mal eine zweite for schleife mit der anzahl der elemente.</p>
<p>aber wie ich dann die map ansprechen soll komm ich nicht drauf :(?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273426</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Thu, 22 Nov 2012 14:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 14:29:46 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>da würde ich sagen</p>
<p>cout &lt;&lt; bla.[0] &lt;&lt; endl;</p>
</blockquote>
<p>Fast. <code>cout &lt;&lt; bla[0] &lt;&lt; endl;</code> - ohne den Punkt.</p>
<p>lulu32 schrieb:</p>
<blockquote>
<p>also ich denke mal eine zweite for schleife mit der anzahl der elemente.</p>
<p>aber wie ich dann die map ansprechen soll komm ich nicht drauf :(?</p>
</blockquote>
<p>Zweite Schleife ist richtig. Die Map musst du nicht mehr ansprechen, die hast du doch schon verwurstet. Dein Problem ist doch, dass <code>(*it).second</code> (was du übrigens auch als <code>it-&gt;second</code> schreiben kannst) ein vector ist, der nicht so einfach ausgegeben werden kann.<br />
Wenn der vector bla heißt, greifst du also z.B. mit bla[0] auf die Elemente zu. Wenn der vector aber nu <code>it-&gt;second</code> heißt, wie greifst du dann auf die Elemente zu? <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/2273430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273430</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 22 Nov 2012 14:29:46 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 14:32:48 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>da würde ich sagen</p>
<p>cout &lt;&lt; bla.[0] &lt;&lt; endl;</p>
</blockquote>
<p>damit gibst du das erste Element aus. Wenn der vector nun 10.000 Elemente hat? Oder noch schlimmer: wenn du gar nciht genau weißt, wieviele Elemente tatsächlich enthalten sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273432</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 22 Nov 2012 14:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 14:45:45 GMT]]></title><description><![CDATA[<pre><code>for ( it1=mymap.begin() ; it1 != mymap.end(); it1++ )
		{
			cout &lt;&lt; (*it1).first &lt;&lt; endl;
			for( int j = 0; j&lt;(*it1).second.size(); j++)
			{
				cout &lt;&lt; (*it1).second[j] &lt;&lt; endl;
			}
		}
</code></pre>
<p>also es geht mal so, ob ich das so auch darf?<br />
ich bin absoluter anfänger mit solchen sachen <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>// edit</p>
<p>oh man jetzt kommt schon die nächste frage. ich habs immer noch nicht richtig in meinem kopf gespeichert bzw. realisiert.</p>
<p>wie greife ich dann auf einem bestimmt wert zu und überschreibe ihn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273435</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Thu, 22 Nov 2012 14:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 14:55:48 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>also es geht mal so, ob ich das so auch darf?</p>
</blockquote>
<p>Darfst du <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>
<blockquote>
<p>ich bin absoluter anfänger mit solchen sachen <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>
</blockquote>
<p>Ein gutes Buch sollte dir solche Dinge aber schon beibringen...</p>
<blockquote>
<p>wie greife ich dann auf einem bestimmt wert zu und überschreibe ihn?</p>
</blockquote>
<p>Bei einer normalen Variable geht das so: <code>x = 5;</code> Bei einem vector-Element gehts so: <code>bla[2] = 42;</code> - der Zugriff sieht schreibend nicht anders aus als lesend. Wie das jetzt bei den mymap-Iteratoren und den firsts und seconds dahinter aussieht, darfst du einmal raten <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/2273441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273441</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 22 Nov 2012 14:55:48 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 15:18:14 GMT]]></title><description><![CDATA[<p>danke für die antwort, ich habs hinbekommen aber jetzt hört es schon wieder auf, ich komm ständig an grenzen</p>
<pre><code>mymap.find(&quot;2&quot;)-&gt;second[1] = &quot;geaendert&quot;; 
 cout &lt;&lt; &quot;\n&quot; &lt;&lt; mymap.find(&quot;2&quot;)-&gt;second[1] &lt;&lt; endl;// hat geklappt jaaaaa :)

  // hätte ich gern das es geht aber tut nicht :(
  for(int j = 0; j&lt;(*it1).second.size(); j++) // (*it1) ist natürlich -827223 somit fehler. 
  {	  
	 if(strcmp(mymap.find(&quot;2&quot;)-&gt;second[j],&quot;geaendert&quot;) == 0) // strcmp will irgendwas anderes... da ist auch noch der wurm drinn
	 mymap.find(&quot;2&quot;)-&gt;second[j] = &quot;nochmal geaendert&quot;;
  }
</code></pre>
<p>Fehler:<br />
error C2664: 'strcmp': Konvertierung des Parameters 1 von 'std::basic_string&lt;_Elem,_Traits,_Ax&gt;' in 'const char *' nicht möglich</p>
<p>wenn das jetzt noch irgendwie gehen würde, dann wäre ich glücklich <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>// Kommando zurück, ich sehe den wald vor lauter bäumen nimmer, ich brauch nen kaffee <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>so gehts jetzt <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="🙂"
    /> <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>for(int p = 0; p&lt;mymap.find(&quot;2&quot;)-&gt;second.size(); p++)
  {	  
	 if(mymap.find(&quot;2&quot;)-&gt;second[p] == &quot;geaendert&quot;)
	       mymap.find(&quot;2&quot;)-&gt;second[p] = &quot;nochmal geaendert&quot;;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273455</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Thu, 22 Nov 2012 15:18:14 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 15:42:21 GMT]]></title><description><![CDATA[<p>Warum benutzt du strcmp mit std::string? Jemand der dir irgendetwas aus cstring/string.h für die Benutzung in C++ nennt, hat zu 99% keine Ahnung.</p>
<p>Noch ein wichtiger Tipp: Speicher dir das Ergebnis von find zwischen! find ist eine teure Funktion, die geht mit O(log(Mapgröße)) und hat große Konstanten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273469</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 22 Nov 2012 15:42:21 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 15:47:30 GMT]]></title><description><![CDATA[<p>so jetzt hab ich was, was ich zwar durch probieren rausgefunden habe, aber ich es nicht verstehe...</p>
<p>beim vector ist es klar, den übergebe ich als reference weil er nen pointer erwartet.</p>
<p>bei der map ging das nicht, hier muss ich ne refernce setzen und die map ganz normal einfügen.. es funktioniert aber ich verstehe nicht warum das bei der map jetzt anderst ist als beim vector</p>
<pre><code>vector&lt;string&gt; dervektor;
int i;
i=0;
map&lt;string,vector&lt;string&gt;&gt; mymap;

checkContentOfDir(pfad, &amp;dervektor, &amp;i, mymap);

// funktionsdeklaration:

checkContentOfDir(string strInPath, vector&lt;string&gt; *list, int *zaehler, map&lt;string,vector&lt;string&gt;&gt; &amp;mymap ) // warum &amp; und nicht *??
{
mymap[&quot;1&quot;].push_back(&quot;bla&quot;);

++*zaehler;
list-&gt;push_back(&quot;listbla&quot;);
.
.
.
}
</code></pre>
<p>// PS: ich habe KEINE Ahnung, ich programiere seit 6 Wochen effektiv, davor nur 2 Semster in der FH und da hab ich nicht wirklich viel programiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273470</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Thu, 22 Nov 2012 15:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 15:47:11 GMT]]></title><description><![CDATA[<p>du kannst sowohl einen vector als auch eine map als Pointer oder als Referenz übergeben.</p>
<p>Wenn da was nicht geht, machst du was falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273472</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 22 Nov 2012 15:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 15:50:23 GMT]]></title><description><![CDATA[<p>das geht aber nicht:</p>
<pre><code>// main.cpp
map&lt;string,vector&lt;string&gt;&gt; mymap;

funktion(&amp;mymap);

// funktionsdeklaration

void funktion(*mymap)
{
  mymap[&quot;1&quot;]-&gt;push_back(&quot;bla&quot;); //es geht nicht!!
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273473</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Thu, 22 Nov 2012 15:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 15:54:45 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>das geht aber nicht:</p>
<pre><code>// main.cpp
map&lt;string,vector&lt;string&gt;&gt; mymap;

funktion(&amp;mymap);

// funktionsdeklaration

void funktion(*mymap)
{
  mymap[&quot;1&quot;]-&gt;push_back(&quot;bla&quot;); //es geht nicht!!
}
</code></pre>
</blockquote>
<p>das wird aber auch mit einem vector nicht funktionieren. Schau dir doch nochmal an, wie eine Funktionssignatur auszusehen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273474</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 22 Nov 2012 15:54:45 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 16:12:01 GMT]]></title><description><![CDATA[<p>hmm tut mir leid ich verstehe nur noch bahnhof, entweder ich mach irgendwo nen dicken fehler oder ich schalt komplett aus:</p>
<pre><code>// das hier ist meine funktion
void checkContentOfDir(string strInPath, vector&lt;string&gt; *list, int *zaehler, map&lt;string,vector&lt;string&gt;&gt; &amp;mymap ) // ACHTUNG mymap hat &amp; und nicht *
	{
list-&gt;push_back(&quot;bla&quot;); // funktioniert einwandfrei
mymap[&quot;ddf&quot;].push_back(&quot;bla&quot;); // funktioniert auch

// aber warum geht es nicht das ich oben *mymap machen und dann
 mymap[&quot;ddf&quot;]-&gt;push_back(&quot;bla&quot;); // das geht einfach nicht
}

// in der main sieht es so aus:

        int i;
	i=0;

	vector&lt;string&gt; dervektor;
	map&lt;string,vector&lt;string&gt;&gt; mymap;
         string pfad;
	pfad = &quot;C:\\Program Files\\GIMP 2\\&quot;;

checkContentOfDir(pfad, &amp;dervektor, &amp;i, mymap); // auch hier &amp;mymap geht nicht.... er will mymap
</code></pre>
<p>// edit</p>
<p>also wenn ich es so mache wie beim vektor dann kann ich nur</p>
<pre><code>// z.b. das hie rmachen
mymap-&gt;find();

ich weiß aber nicht wie ich den dann befüllen soll...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273476</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Thu, 22 Nov 2012 16:12:01 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Thu, 22 Nov 2012 16:23:16 GMT]]></title><description><![CDATA[<p>Mir ist zwar nicht klar warum du hier überhaupt mit Zeigern arbeitest, aber dir fehlt wohl ein großes Verständnis wie Operatoren arbeiten. std::map hat die Methode &quot;operator[]&quot;, aber nicht ein Zeiger auf eine map (Ein Zeiger hat keine Methoden).</p>
<pre><code>// Wenn mymap nun als Zeiger übergeben wurde:
(*mymap)[&quot;ddf&quot;].push_back(&quot;bla&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273483</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 22 Nov 2012 16:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 07:25:51 GMT]]></title><description><![CDATA[<p>wo hab ich denn ein problem mit zeigern?</p>
<p>ich erstelle im hauptprogramm eine variable und will mit der funktion auf dieser variable ackern. also erstelle ich doch eine funktion die einen pointer will...</p>
<p>so jetzt:</p>
<pre><code>// funktion 1
void function1(vector&lt;string&gt; *list)
{
   list-&gt;push_back(&quot;blabla&quot;);
}

//main
int main()
{
vector&lt;string&gt; *alist;

function1(&amp;alist);
cout &lt;&lt; alist[1] &lt;&lt; endl; // gibt blabla aus!

return 0;
}
</code></pre>
<p>Bis hier hin habe ich doch richtig gearbeitet? Oder etas nicht?</p>
<p>So jetzt gehts zur map</p>
<pre><code>// funkion 2 mit map

function2(map&lt;string,vector&lt;string&gt;&gt; *mymap)
{
mymap[&quot;1&quot;]-&gt;push_back(&quot;blabla&quot;); // geht nicht
mymap-&gt;find(&quot;xy&quot;);                      // geht schon, ich weiß also nicht wie ich den ganzen käse befüllen soll, hier liegt der wurm wahrscheinlich weil es bei ner map durch mymap[&quot;1&quot;] eben durch das erste element wohl anderst wird?
}

//main
int main()
{
map&lt;string,vector&lt;string&gt;&gt; amap;

function2(&amp;amap);

return 0;
}
</code></pre>
<p>Ich habe es jetzt so gemacht, das müsste doch auch sauber programmiert sein?</p>
<pre><code>// funktion 3 mit referenz
void function3(map&lt;string,vector&lt;string&gt;&gt; &amp;mymap)
{
   mymap[&quot;1&quot;]-&gt;push_back(&quot;blaba&quot;);
}

// main
int main()
{
map&lt;string,vector&lt;string&gt;&gt; amap;

function2(&amp;amap);
return 0;
}
</code></pre>
<p>Ich hab mir schon x-mal pointer angesehen und hab es eigentlich auch verstandne, nur verstehe ich hier das problem nicht, warum es nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273676</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Fri, 23 Nov 2012 07:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 07:56:32 GMT]]></title><description><![CDATA[<p>Wäre schön wenn du dir wenigstens mein Beispiel angeschaut hättest. Dann würdest du vielleicht auch verstehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273688</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 23 Nov 2012 07:56:32 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 08:44:22 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>Ich habe es jetzt so gemacht, das müsste doch auch sauber programmiert sein?</p>
</blockquote>
<p>Zeig doch mal die Fehlermeldungen, die der Compiler dazu ausgibt. Da sollte eigentlich drinstehen, wo die Fehler liegen.</p>
<p>lulu32 schrieb:</p>
<blockquote>
<p>Ich hab mir schon x-mal pointer angesehen und hab es eigentlich auch verstandne, nur verstehe ich hier das problem nicht, warum es nicht geht.</p>
</blockquote>
<p>1. Weißt du, was eine Referenz ist? Und weißt du, wie man ein Objekt &quot;als Referenz&quot; übergibt?</p>
<p>2. Du hast eine std::map&lt;string, vector&lt;string&gt;&gt; und keine std::map&lt;string, vector&lt;string&gt;*&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273706</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 23 Nov 2012 08:44:22 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 11:16:49 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Wäre schön wenn du dir wenigstens mein Beispiel angeschaut hättest. Dann würdest du vielleicht auch verstehen...</p>
</blockquote>
<p>Ich finde es ja nett das ihr mir helfen wollt, aber damit eher nicht. Ich studiere jetzt auch schon über 2 Jahre Informatik und weiß schon wie ich vorzugehen habe, wenn ich was nicht verstehe.<br />
Und beim Programieren brauch ich persönlich immer Beispiele um es zu verstehen von dem her hab ich mir einigige beispiele angeschaut!!!!!!!</p>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>lulu32 schrieb:</p>
<blockquote>
<p>Ich habe es jetzt so gemacht, das müsste doch auch sauber programmiert sein?</p>
</blockquote>
<p>Zeig doch mal die Fehlermeldungen, die der Compiler dazu ausgibt. Da sollte eigentlich drinstehen, wo die Fehler liegen.</p>
<p>1. Weißt du, was eine Referenz ist? Und weißt du, wie man ein Objekt &quot;als Referenz&quot; übergibt?</p>
<p>2. Du hast eine std::map&lt;string, vector&lt;string&gt;&gt; und keine std::map&lt;string, vector&lt;string&gt;*&gt;</p>
</blockquote>
<p>1. Ich habe keinen Compilerfehler dabei &quot;mymap[&quot;d&quot;]-&gt; &quot;(will mymap[&quot;d&quot;]-&gt;push_back(&quot;bbb&quot;) machen) schon garnichts kommt und da brauch ich nicht compilieren. Allerdings bei &quot; mymap-&gt; &quot; kommen schon die vorschläge. Also habe ich hier wohl irgendwie ein pointer problem bzw. hab ich hier wahrscheinlich die map mit den pointern nicht verstanden, weil das ist hier für mich ein wenig komplizierter als bei integer.</p>
<p>2. wenn ich eine refernz habe, kann ich mit der referenz auf der variable ackern.. d.h.</p>
<pre><code>int var =1;
int &amp;ref = var;

ref = 2;
cout &lt;&lt; var &lt;&lt; endl; // ausgabe 2
</code></pre>
<p>genau das mach ich ja jetzt...</p>
<p>3. was ich aber will ist mit der map</p>
<pre><code>int i = 1;
int *pi = 0;

pi = &amp;i; 

cout &lt;&lt; *pi &lt;&lt; endl;
</code></pre>
<pre><code>function1(map&lt;string,vector&lt;string&gt;&gt; *mymap)
{
mymap[&quot;1&quot;]-&gt;pushBack(&quot;bla&quot;);
}

void main()
{
map&lt;string,vector&lt;string&gt;&gt; amap;
function1(&amp;amap);

return 0;
}

//Fehler:
//error C2107: Ungültiger Index, Dereferenzierung nicht zulässig.
// Links von &quot;-&gt;pushBack&quot; muss sich ein Zeiger auf Klassen-/Struktur-/Union-//generischen Typ befinden.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273768</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Fri, 23 Nov 2012 11:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 11:20:11 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>1. Ich habe keinen Compilerfehler dabei &quot;mymap[&quot;d&quot;]-&gt; &quot;(will mymap[&quot;d&quot;]-&gt;push_back(&quot;bbb&quot;) machen) schon garnichts kommt und da brauch ich nicht compilieren. Allerdings bei &quot; mymap-&gt; &quot; kommen schon die vorschläge. Also habe ich hier wohl irgendwie ein pointer problem bzw. hab ich hier wahrscheinlich die map mit den pointern nicht verstanden, weil das ist hier für mich ein wenig komplizierter als bei integer.</p>
</blockquote>
<p>ohje... erstmal solltest du dich nicht blind auf die auto completion verlassen. Soviel, wie du vermutlich zwischen Pointer und Referenz hin- und hergesprungen bist, kommt Visual Assist da auch nicht hinterher.</p>
<p>Du musst einfach nur den Unterschied in der Verwendung von Pointer und Referenz lernen.</p>
<p>lulu32 schrieb:</p>
<blockquote>
<p>2. wenn ich eine refernz habe, kann ich mit der referenz auf der variable ackern..</p>
</blockquote>
<p>und wie genau machst du das? Also was ist richtig:</p>
<pre><code class="language-cpp">MyObject&amp; ref = GetReference();
ref.DoSomething();  // das hier?
ref-&gt;doSomething(); // oder das hier?
</code></pre>
<p>[edit]</p>
<pre><code class="language-cpp">// Links von &quot;-&gt;pushBack&quot; muss sich ein Zeiger auf Klassen-/Struktur-/Union-//generischen Typ befinden.
</code></pre>
<p>da steht es doch. das &quot;Ding&quot;, was links von &quot;-&gt;pushBack&quot; steht, muss ein Zeiger sein. Das ist es aber bei dir nicht.</p>
<p>Überleg doch mal, welchen Typ das &quot;Ding&quot; hat, das bei &quot;myMap[&quot;1&quot;]&quot; rauskommt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273777</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 23 Nov 2012 11:20:11 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 11:36:18 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>Und beim Programieren brauch ich persönlich immer Beispiele um es zu verstehen von dem her hab ich mir einigige beispiele angeschaut!!!!!!!</p>
</blockquote>
<p>&quot;Jeder soll nach seiner Façon glücklich werden&quot;:</p>
<pre><code class="language-cpp">void function1(map&lt;string,vector&lt;string&gt;&gt; *mymap)
{
  (*mymap)[&quot;1&quot;].push_back(&quot;bla&quot;);           // 1
  mymap-&gt;operator[](&quot;1&quot;).push_back(&quot;bla&quot;);  // 2
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2273792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273792</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Fri, 23 Nov 2012 11:36:18 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 12:15:10 GMT]]></title><description><![CDATA[<p>Furble Wurble schrieb:</p>
<blockquote>
<p>lulu32 schrieb:</p>
<blockquote>
<p>Und beim Programieren brauch ich persönlich immer Beispiele um es zu verstehen von dem her hab ich mir einigige beispiele angeschaut!!!!!!!</p>
</blockquote>
<p>&quot;Jeder soll nach seiner Façon glücklich werden&quot;:</p>
<pre><code class="language-cpp">void function1(map&lt;string,vector&lt;string&gt;&gt; *mymap)
{
  (*mymap)[&quot;1&quot;].push_back(&quot;bla&quot;);           // 1
  mymap-&gt;operator[](&quot;1&quot;).push_back(&quot;bla&quot;);  // 2
}
</code></pre>
</blockquote>
<p>Vielen Dank jetzt kann ich auch mal anfangen es zu verstehen <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>Jetzt aber noch zu meiner Verteidigung was, wenn ich einen function(vector&lt;string&gt; *avector) dann kann ich avector-&gt;push_back() machen. Das verwirrt mich so..</p>
<p>Aber dadruch mymap-&gt;operator[](&quot;1&quot;).push_back(&quot;bla&quot;); ist es mir jetzt klar geworden</p>
<p>vielen dank <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/2273819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273819</guid><dc:creator><![CDATA[lulu32]]></dc:creator><pubDate>Fri, 23 Nov 2012 12:15:10 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 12:33:03 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>Jetzt aber noch zu meiner Verteidigung was, wenn ich einen function(vector&lt;string&gt; *avector) dann kann ich avector-&gt;push_back() machen. Das verwirrt mich so..</p>
</blockquote>
<p>Wenn du einen Pointer hast, nimmst du &quot;-&gt;&quot;. Ansonsten &quot;.&quot;.</p>
<p>Eigentlich ganz einfach <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/2273829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273829</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Fri, 23 Nov 2012 12:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to map lässt sich nicht ausgeben. on Fri, 23 Nov 2012 13:25:19 GMT]]></title><description><![CDATA[<p>lulu32 schrieb:</p>
<blockquote>
<p>asc schrieb:</p>
<blockquote>
<p>Wäre schön wenn du dir wenigstens mein Beispiel angeschaut hättest. Dann würdest du vielleicht auch verstehen...</p>
</blockquote>
<p>Ich finde es ja nett das ihr mir helfen wollt, aber damit eher nicht. Ich studiere jetzt auch schon über 2 Jahre Informatik und weiß schon wie ich vorzugehen habe, wenn ich was nicht verstehe...</p>
</blockquote>
<p>Ich habe wiederum Probleme wenn man eine Zeile Code die man geliefert bekommt nicht einmal ausprobiert, und das gleiche wie zuvor schreibt. Das hat auch nichts mit der Dauer zu tun, wie lange man sich damit auseinander setzt.</p>
<p>Unabhängig davon: Warum überhaupt immer Zeiger? Warum keine Referenzen etc?</p>
<p>Sind die Daten optional, dann akzeptiere ich in einem Funktionskopf Zeiger, wenn nicht will ich wenigstens die Gründe für die Zeiger wissen. Wenn du etwas als Zeiger übergibst, so kann man ohne weiteres auch einen 0-Zeiger übergeben. Und wenn man dies in der Funktion nicht abprüft (und sei es wenigstens im Debugmodus mit Mechanismen wie assert) wird man ganz schnell eine Zugriffsverletzung ernten wenn man doch mal die Funktion falsch verwendet.</p>
<p>Eine Referenz kann man zwar auch ungültig machen, dies muss man aber eigentlich schon mutwillig tun. Es ist zumindest schwerer. Und Referenzen deuten eindeutig darauf das man hier ein Objekt erzwingt. Zudem erleichtert es die Schreib- und Denkweise.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2273859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2273859</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 23 Nov 2012 13:25:19 GMT</pubDate></item></channel></rss>