<?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[std::multimap als Parameter übergeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bekomme fogenden Fehler:<br />
error C2955: 'multimap' : Fuer die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich<br />
c:\programme\microsoft visual studio\vc98\include\map(286) : Siehe Deklaration von 'multimap'</p>
<p>code: .cpp</p>
<pre><code class="language-cpp">#include &lt;map&gt;
bool insertW(std::multimap ewp) { 

..
return true;
}
</code></pre>
<p>code .h<br />
#include &lt;map&gt;</p>
<pre><code class="language-cpp">bool insertW(std::multimap ewp);
</code></pre>
<p>Kann man generell keine map als Parameter übergeben? Evtl. weil sie beliebig gross sein kann. Oder habe ich falsche Syntax?</p>
<p>schon mal vielen Dank für Antwort!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178414/std-multimap-als-parameter-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 21:15:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178414.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Apr 2007 07:37:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 07:37:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bekomme fogenden Fehler:<br />
error C2955: 'multimap' : Fuer die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich<br />
c:\programme\microsoft visual studio\vc98\include\map(286) : Siehe Deklaration von 'multimap'</p>
<p>code: .cpp</p>
<pre><code class="language-cpp">#include &lt;map&gt;
bool insertW(std::multimap ewp) { 

..
return true;
}
</code></pre>
<p>code .h<br />
#include &lt;map&gt;</p>
<pre><code class="language-cpp">bool insertW(std::multimap ewp);
</code></pre>
<p>Kann man generell keine map als Parameter übergeben? Evtl. weil sie beliebig gross sein kann. Oder habe ich falsche Syntax?</p>
<p>schon mal vielen Dank für Antwort!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263531</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Wed, 11 Apr 2007 07:37:09 GMT</pubDate></item><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 07:44:23 GMT]]></title><description><![CDATA[<p>multimap ist keine Klasse, sondern ein Template. Das heißt, du mußt dem Compiler noch dazusagen, welche Spezialisierung davon du verwenden willst, z.B.:</p>
<pre><code class="language-cpp">bool insertW(std::multimap&lt;int,double&gt; ewp) { 
  ...
  return true;
}
</code></pre>
<p>(und eventuell ist es eine gute Idee, die map als (const) Referenz zu übergeben - das ist zwar nicht erforderlich, spart aber Kopier-Operationen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263535</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 11 Apr 2007 07:44:23 GMT</pubDate></item><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 08:21:06 GMT]]></title><description><![CDATA[<p>ja klar, danke.</p>
<p>Leider habe ich jetzt das Problem, wie ich auf alle Elemente der map zugreife.<br />
Die Multimap sieht so aus:<br />
std::multimap&lt;string,MeineStruct&gt; EWP</p>
<p>MeineStruct besteht aus 5 string Attributen.<br />
Das insert hat auch funktioniert, hast Du mir in einen anderen Thread gepostet.<br />
EWP.insert(make_pair(a,MeineStruct(b,c,d,e,f)));</p>
<p>hier mein Problem bein Zugriff:</p>
<pre><code class="language-cpp">std::multimap&lt;std::string,MeineStruct&gt;::iterator it = m_navContainer-&gt;EWP.begin();
while( it != m_navContainer-&gt;EWP.end() ) {
++it;

 it-&gt;second.MeineStruct.b; //hier Fehler, habe sinnlos rumprobiert

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1263577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263577</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Wed, 11 Apr 2007 08:21:06 GMT</pubDate></item><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 08:32:24 GMT]]></title><description><![CDATA[<p>Und wie lautet denn der Fehler? Ich bin echt schlecht darin, aus so einem Fragment abzulegen, was du für Mist gebaut haben könntest (das einzige Problem wäre, daß du von außen nicht an die Member herankommen könntest wegen fehlender Zugriffsrechte).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263585</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 11 Apr 2007 08:32:24 GMT</pubDate></item><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 08:42:22 GMT]]></title><description><![CDATA[<p>Mach das MeineStruct weg. Das ist dein Typname, den brauchst du hier nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263594</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 11 Apr 2007 08:42:22 GMT</pubDate></item><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 08:48:49 GMT]]></title><description><![CDATA[<p>Oh sorry.<br />
Ich war mir nicht sicher, ob ich den Iterator und Zugriff auf die struct richtig verwende. Klar ist mir, wenn der Wert der multimap keine struct, sondern ein einfacher Datentyp wäre, könnte ich mit it-&gt;second darauf zugreifen.</p>
<p>Bei it-&gt;second kommt auch keine Fehlermeldung, die kommt wenn ich die einzelnen Attribute der struct an sprechen will.</p>
<p>hier die Meldung:<br />
error C2274: 'function-style cast' : Unzulaessig auf der rechten Seite des Operators '.'<br />
error C2228: Der linke Teil von '.b' muss eine Klasse/Struktur/Union sein</p>
<pre><code class="language-cpp">hier die Dekl. in .h
struct MeineStruct
{ 
  string att1; 
  string att2; 
  string att3;
  string att4;
  string att5; 

  MeineStruct(const string&amp; a1,const string&amp; a2, const string&amp; a3,const string&amp; a4, const string&amp; a5) {
	  att1 = a1;
	  att2 = a2;
	  att3 = a3;
	  att4 = a4;
	  att5 = a5;
  } 
};
</code></pre>
<p>hier die Zuweisung in .cpp</p>
<pre><code class="language-cpp">std::istream_iterator&lt;string&gt; afi (quelle);
	std::istream_iterator&lt;string&gt; eof;
	while (afi != eof) { 

		std::string a = *afi++;		//Nick
		std::string b = *afi++;		//Name	
		std::string c = *afi++;		//typ
		std::string d = *afi++;		//lat
		std::string e = *afi++;		//lon	
		std::string f = *afi++;		//frequenz

		// speichern in map

		if (c == &quot;VOR&quot;) {
			//	cout &lt;&lt; &quot;todo map VOR&quot;&lt;&lt; endl;

			VOR.insert(make_pair(a,NavData(b,c,d,e,f))); 

		}
		else if (c == &quot;EWP&quot;) {
			//	cout &lt;&lt; &quot;todo map ewp&quot;&lt;&lt; endl;
			EWP.insert(make_pair(a,MeineStruct(b,c,d,e,f))); 

		}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1263604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263604</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Wed, 11 Apr 2007 08:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 08:51:52 GMT]]></title><description><![CDATA[<p>Da greifst du mit <code>it-&gt;second.attr1;</code> etc auf die Member zu (btw, ich würde erst zugreifen und dann weiterlaufen ;)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263610</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 11 Apr 2007 08:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to std::multimap als Parameter übergeben on Wed, 11 Apr 2007 09:00:13 GMT]]></title><description><![CDATA[<p>Danke, ich hab völlig auf dem Schlauch gestanden!</p>
<p>Habe statt das Attribut att1.., den Parameter a1 genommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263618</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Wed, 11 Apr 2007 09:00:13 GMT</pubDate></item></channel></rss>