<?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[Problem mit make_pair]]></title><description><![CDATA[<p>Ich hoffe einfach mal, dass ich hier im richtigen Unterforum bin. Wenn nicht bitte ich schonmal um Verzeihung. <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>Ich arbeite mich, mit Hilfe von Heiko Kalistas &quot;C++ für Spieleprogrammierer&quot;, gerade in C++ ein. Nun, alles ist sauber gelaufen und ich habe auch alles verstanden. Auch die Maps habe ich verstanden, aber der Compiler (Visual C++ 6.0) wohl nicht.</p>
<p>Ich poste einfach mal das Beispiel aus dem Buch und die Fehler die dann auftreten .</p>
<pre><code class="language-cpp">// C++ für Spieleprogrammierer
// Listing 9.8
// Maps mit der STL
//

#pragma warning (disable:4786)
#include &lt;iostream&gt;
#include &lt;map&gt;
#include &lt;string&gt;

using namespace std;

// Hauptprogramm
//
int main ()
{
	// Variablen
	//
	map&lt;string, int&gt; Punktetabelle; // Map
	map&lt;string, int&gt;::iterator i;   // Iterator für die Map
	pair&lt;string, int&gt; Spieler;      // Paar-Objekt für die Map

	// Anlegen von Spielerdaten (Map mit Daten füllen)
	//
	cout &lt;&lt; &quot;Spielerdaten werden angelegt\n\n&quot;;

	// Paare mit der Funktion &quot;make_pair&quot; erzeugen
	// und in die Map schieben
	Spieler = make_pair (&quot;Tobi&quot;, 2500);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Peter&quot;, 43800);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Maria&quot;, 26500);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Nina&quot;, 22350);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Andi&quot;, 21080);
	Punktetabelle.insert (Spieler);

	// Paar &quot;manuell&quot; erzeugen und in die Map schieben
	Spieler.first  = &quot;Marc&quot;;
	Spieler.second = 18400;
	Punktetabelle.insert (Spieler);

	// Suche nach Spieler &quot;Peter&quot;
	cout &lt;&lt; &quot;Suche nach Spieler \&quot;Peter\&quot;\n\n&quot;;

	i = Punktetabelle.find (&quot;Peter&quot;);

	// Prüfen, ob ein entsprechender Eintrag gefunden wurde
	if (i != Punktetabelle.end() )
	{
		// Ja, dann Spielerdaten ausgeben
		cout &lt;&lt; &quot;Spieler \&quot;Peter\&quot; wurde gefunden.&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Er hat &quot; &lt;&lt; i-&gt;second &lt;&lt; &quot; Punkte erreicht&quot;;
		cout &lt;&lt; &quot;\n\n&quot;;
	}
	else
	{
		// Nein, dann Fehlermeldung ausgeben
		cout &lt;&lt; &quot;Spieler \&quot;Peter\&quot; wurde nicht gefunden&quot;;
		cout &lt;&lt; endl;
	}

	// Anzahl der eingetragenen Spieler ausgeben sowie
	// deren Namen und erreichte Punkte
	cout &lt;&lt; &quot;Auflistung aller Spieler in der Tabelle:\n&quot;;
	cout &lt;&lt; &quot;(Insgesamt &quot; &lt;&lt; static_cast&lt;int&gt; (Punktetabelle.size () );
	cout &lt;&lt; &quot; Eintraege)&quot; &lt;&lt; &quot;\n\n&quot;;

	for (i= Punktetabelle.begin(); i!= Punktetabelle.end(); ++i)
	{
		cout &lt;&lt; &quot;Spieler &quot; &lt;&lt; i-&gt;first &lt;&lt; &quot; hat &quot;;
		cout &lt;&lt; i-&gt;second &lt;&lt; &quot; Punkte erreicht&quot;;
		cout &lt;&lt; &quot;\n\n&quot;;
	}

	// Einen Eintrag direkt ansprechen, indem die Map wie ein
	// Array verwendet wird
	cout &lt;&lt; &quot;Eintrag direkt ausgeben: &quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Spieler \&quot;Nina\&quot; hat &quot;;
	cout &lt;&lt; Punktetabelle[&quot;Nina&quot;];
	cout &lt;&lt; &quot; Punkte erreicht&quot; &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Und der Fehler:</p>
<pre><code>c:\programme\microsoft visual studio\vc98\include\utility(21) : error C2536: 'std::pair&lt;char [5],int&gt;::first' : Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
        c:\programme\microsoft visual studio\vc98\include\utility(25) : Siehe Deklaration von 'first'
        c:\programme\microsoft visual studio\vc98\include\utility(21) : Bei der Kompilierung der Member-Funktion '__thiscall std::pair&lt;char [5],int&gt;::std::pair&lt;char [5],int&gt;(const char (&amp;)[5],const int &amp;)' der Klassenvorlage
Fehler beim Ausführen von cl.exe.

Listing 1_1.obj - 1 Fehler, 0 Warnung(en)
</code></pre>
<p>Das &quot;#pragma warning (disable:4786)&quot; habe ich selber eingebaut, da das Ganze sonst deutlich länger wird.<br />
Wo liegt jetzt das Problem? Ich hoffe ihr könnt mir helfen. <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/topic/209294/problem-mit-make_pair</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 13:30:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209294.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Mar 2008 18:13:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:13:58 GMT]]></title><description><![CDATA[<p>Ich hoffe einfach mal, dass ich hier im richtigen Unterforum bin. Wenn nicht bitte ich schonmal um Verzeihung. <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>Ich arbeite mich, mit Hilfe von Heiko Kalistas &quot;C++ für Spieleprogrammierer&quot;, gerade in C++ ein. Nun, alles ist sauber gelaufen und ich habe auch alles verstanden. Auch die Maps habe ich verstanden, aber der Compiler (Visual C++ 6.0) wohl nicht.</p>
<p>Ich poste einfach mal das Beispiel aus dem Buch und die Fehler die dann auftreten .</p>
<pre><code class="language-cpp">// C++ für Spieleprogrammierer
// Listing 9.8
// Maps mit der STL
//

#pragma warning (disable:4786)
#include &lt;iostream&gt;
#include &lt;map&gt;
#include &lt;string&gt;

using namespace std;

// Hauptprogramm
//
int main ()
{
	// Variablen
	//
	map&lt;string, int&gt; Punktetabelle; // Map
	map&lt;string, int&gt;::iterator i;   // Iterator für die Map
	pair&lt;string, int&gt; Spieler;      // Paar-Objekt für die Map

	// Anlegen von Spielerdaten (Map mit Daten füllen)
	//
	cout &lt;&lt; &quot;Spielerdaten werden angelegt\n\n&quot;;

	// Paare mit der Funktion &quot;make_pair&quot; erzeugen
	// und in die Map schieben
	Spieler = make_pair (&quot;Tobi&quot;, 2500);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Peter&quot;, 43800);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Maria&quot;, 26500);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Nina&quot;, 22350);
	Punktetabelle.insert (Spieler);

	Spieler = make_pair (&quot;Andi&quot;, 21080);
	Punktetabelle.insert (Spieler);

	// Paar &quot;manuell&quot; erzeugen und in die Map schieben
	Spieler.first  = &quot;Marc&quot;;
	Spieler.second = 18400;
	Punktetabelle.insert (Spieler);

	// Suche nach Spieler &quot;Peter&quot;
	cout &lt;&lt; &quot;Suche nach Spieler \&quot;Peter\&quot;\n\n&quot;;

	i = Punktetabelle.find (&quot;Peter&quot;);

	// Prüfen, ob ein entsprechender Eintrag gefunden wurde
	if (i != Punktetabelle.end() )
	{
		// Ja, dann Spielerdaten ausgeben
		cout &lt;&lt; &quot;Spieler \&quot;Peter\&quot; wurde gefunden.&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Er hat &quot; &lt;&lt; i-&gt;second &lt;&lt; &quot; Punkte erreicht&quot;;
		cout &lt;&lt; &quot;\n\n&quot;;
	}
	else
	{
		// Nein, dann Fehlermeldung ausgeben
		cout &lt;&lt; &quot;Spieler \&quot;Peter\&quot; wurde nicht gefunden&quot;;
		cout &lt;&lt; endl;
	}

	// Anzahl der eingetragenen Spieler ausgeben sowie
	// deren Namen und erreichte Punkte
	cout &lt;&lt; &quot;Auflistung aller Spieler in der Tabelle:\n&quot;;
	cout &lt;&lt; &quot;(Insgesamt &quot; &lt;&lt; static_cast&lt;int&gt; (Punktetabelle.size () );
	cout &lt;&lt; &quot; Eintraege)&quot; &lt;&lt; &quot;\n\n&quot;;

	for (i= Punktetabelle.begin(); i!= Punktetabelle.end(); ++i)
	{
		cout &lt;&lt; &quot;Spieler &quot; &lt;&lt; i-&gt;first &lt;&lt; &quot; hat &quot;;
		cout &lt;&lt; i-&gt;second &lt;&lt; &quot; Punkte erreicht&quot;;
		cout &lt;&lt; &quot;\n\n&quot;;
	}

	// Einen Eintrag direkt ansprechen, indem die Map wie ein
	// Array verwendet wird
	cout &lt;&lt; &quot;Eintrag direkt ausgeben: &quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;Spieler \&quot;Nina\&quot; hat &quot;;
	cout &lt;&lt; Punktetabelle[&quot;Nina&quot;];
	cout &lt;&lt; &quot; Punkte erreicht&quot; &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>Und der Fehler:</p>
<pre><code>c:\programme\microsoft visual studio\vc98\include\utility(21) : error C2536: 'std::pair&lt;char [5],int&gt;::first' : Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
        c:\programme\microsoft visual studio\vc98\include\utility(25) : Siehe Deklaration von 'first'
        c:\programme\microsoft visual studio\vc98\include\utility(21) : Bei der Kompilierung der Member-Funktion '__thiscall std::pair&lt;char [5],int&gt;::std::pair&lt;char [5],int&gt;(const char (&amp;)[5],const int &amp;)' der Klassenvorlage
Fehler beim Ausführen von cl.exe.

Listing 1_1.obj - 1 Fehler, 0 Warnung(en)
</code></pre>
<p>Das &quot;#pragma warning (disable:4786)&quot; habe ich selber eingebaut, da das Ganze sonst deutlich länger wird.<br />
Wo liegt jetzt das Problem? Ich hoffe ihr könnt mir helfen. <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/1482351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482351</guid><dc:creator><![CDATA[Tobias Xy]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:18:58 GMT]]></title><description><![CDATA[<p>Tobias Xy schrieb:</p>
<blockquote>
<p>Auch die Maps habe ich verstanden, aber der Compiler (Visual C++ 6.0) wohl nicht.</p>
</blockquote>
<p>Nimm mal nen neueren Compiler</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1482353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482353</guid><dc:creator><![CDATA[ja]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:18:58 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:22:09 GMT]]></title><description><![CDATA[<p>Naja, der Compiler war auf der CD die mit dem Buch mitgeliefert wurde. Von daher gehe ich aus, dass es nicht an der Compilerversion liegen sollte.<br />
Zudem sind einige Erklärungen aus dem Buch explizit für diesen Compiler zugeschnitten, also wäre es wohl besser wenn ich diesen beibehalten könnte. <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/1482355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482355</guid><dc:creator><![CDATA[Tobias Xy]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:22:09 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:30:22 GMT]]></title><description><![CDATA[<p>Visual Studio 2003 compiliert das ohne Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1482358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482358</guid><dc:creator><![CDATA[doch]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:30:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:30:35 GMT]]></title><description><![CDATA[<p>Tja, der gleiche Code meldet beim VS2005 keinen Fehler.<br />
Und auch keine Warnings, wenn ich die #pragma direktive weglasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1482360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482360</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:30:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:39:53 GMT]]></title><description><![CDATA[<p>probier mal <code>make_pair( string( &quot;Tobi&quot; ), 2500 );</code></p>
<p>Trotzdem ist Visual Studio 6 gnadenlos veraltet.</p>
<p>cheers, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1482367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482367</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:42:05 GMT]]></title><description><![CDATA[<p>In welcher Zeile tritt den der Fehler auf?</p>
<p>Ich tippe auf die make_pair-Zuweisung(en).<br />
Als Abhilfe könntest du jeweils die String-Literale als string dem pair übergeben:</p>
<pre><code class="language-cpp">Spieler = make_pair (string(&quot;Tobi&quot;), 2500);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1482369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482369</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:42:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:42:18 GMT]]></title><description><![CDATA[<p>Ok, das funktioniert. Wo kann ich mir denn einen neueren Compiler runterladen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1482371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482371</guid><dc:creator><![CDATA[Tobias Xy]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:42:18 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit make_pair on Fri, 28 Mar 2008 18:43:27 GMT]]></title><description><![CDATA[<p><a href="https://www.google.de/search?&amp;q=visual%20studion%20download%0D%0A" rel="nofollow">Google: visual studion download<br />
</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1482372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1482372</guid><dc:creator><![CDATA[zagboom]]></dc:creator><pubDate>Fri, 28 Mar 2008 18:43:27 GMT</pubDate></item></channel></rss>