Hi,
Ich bin grade dabei die Grundlagen von C++ mit dem Buch "C++ für Spieleprogammierer zu lernen". Dabei bekomme ich ziemlcihe Probleme mit dem beigelegten Compiler, wenn ich versuche die Anwendungsbeispiele zu kompelieren.
Follgendes Beispiel 100% übereinstimmend mit dem im Buch aufgeführten Beispiel verursacht 18 Warnungen und 1 Fehler:
std::_Tree<std::basic_string<char,std::char_traits <char>,std::allocator<char> >,std:air<std::basic_string<char,std::char_trait
s<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_tr aits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_t raits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::
basic_string<char,std::char_traits<char>,std::allo cator<char> > >,std::allocator<int> >::insert(const std:air<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const ,int> &)' der Klassenvorlage
c:\program files\microsoft visual studio\vc98\include\utility(21) : error C2536: 'std:air<char [5],int>::first' : Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
c:\program files\microsoft visual studio\vc98\include\utility(25) : Siehe Deklaration von 'first'
c:\program files\microsoft visual studio\vc98\include\utility(21) : Bei der Kompilierung der Member-Funktion '__thiscall std:air<char [5],int>::std:air<char [5],int>(const char (&)[5],const int &)' der Klassenvorlage
Fehler beim Ausführen von cl.exe.
qwqwqwww.exe - 1 Fehler, 18 Warnung(en)
"Ich musste die Fehlerausgabe hier extram abkürzen weil 27000 Zeilen die maximale Beitragslänge überschreiten.."
Da ich den beim Buch beigelegten Compiler verwende kann ich nicht verstehen, warum es nicht funktoniert.
Ich würde mich freuen, wenn jemand helfen würde
Ich bin grade dabei die Grundlagen von C++ mit dem Buch "C++ für Spieleprogammierer zu lernen". Dabei bekomme ich ziemlcihe Probleme mit dem beigelegten Compiler, wenn ich versuche die Anwendungsbeispiele zu kompelieren.
Follgendes Beispiel 100% übereinstimmend mit dem im Buch aufgeführten Beispiel verursacht 18 Warnungen und 1 Fehler:
Code:
// C++ für Spieleprogrammierer // Listing 9.8 // Maps mit der STL // #include <iostream> #include <map> #include <string> using namespace std; // Hauptprogramm // int main () { // Variablen // map<string, int> Punktetabelle; // Map map<string, int>::iterator i; // Iterator für die Map pair<string, int> Spieler; // Paar-Objekt für die Map // Anlegen von Spielerdaten (Map mit Daten füllen) // cout << "Spielerdaten werden angelegt\n\n"; // Paare mit der Funktion "make_pair" erzeugen // und in die Map schieben Spieler = make_pair ("Tobi", 2500); Punktetabelle.insert (Spieler); Spieler = make_pair ("Peter", 43800); Punktetabelle.insert (Spieler); Spieler = make_pair ("Maria", 26500); Punktetabelle.insert (Spieler); Spieler = make_pair ("Nina", 22350); Punktetabelle.insert (Spieler); Spieler = make_pair ("Andi", 21080); Punktetabelle.insert (Spieler); // Paar "manuell" erzeugen und in die Map schieben Spieler.first = "Marc"; Spieler.second = 18400; Punktetabelle.insert (Spieler); // Suche nach Spieler "Peter" cout << "Suche nach Spieler \"Peter\"\n\n"; i = Punktetabelle.find ("Peter"); // Prüfen, ob ein entsprechender Eintrag gefunden wurde if (i != Punktetabelle.end() ) { // Ja, dann Spielerdaten ausgeben cout << "Spieler \"Peter\" wurde gefunden." << endl; cout << "Er hat " << i->second << " Punkte erreicht"; cout << "\n\n"; } else { // Nein, dann Fehlermeldung ausgeben cout << "Spieler \"Peter\" wurde nicht gefunden"; cout << endl; } // Anzahl der eingetragenen Spieler ausgeben sowie // deren Namen und erreichte Punkte cout << "Auflistung aller Spieler in der Tabelle:\n"; cout << "(Insgesamt " << static_cast<int> (Punktetabelle.size () ); cout << " Eintraege)" << "\n\n"; for (i= Punktetabelle.begin(); i!= Punktetabelle.end(); ++i) { cout << "Spieler " << i->first << " hat "; cout << i->second << " Punkte erreicht"; cout << "\n\n"; } // Einen Eintrag direkt ansprechen, indem die Map wie ein // Array verwendet wird cout << "Eintrag direkt ausgeben: " << endl; cout << "Spieler \"Nina\" hat "; cout << Punktetabelle["Nina"]; cout << " Punkte erreicht" << endl; return 0; }
s<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_tr aits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_t raits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::
basic_string<char,std::char_traits<char>,std::allo cator<char> > >,std::allocator<int> >::insert(const std:air<std::basic_string<char,std::char_traits<char>, std::allocator<char> > const ,int> &)' der Klassenvorlage
c:\program files\microsoft visual studio\vc98\include\utility(21) : error C2536: 'std:air<char [5],int>::first' : Angabe einer expliziten Initialisierung fuer Felder nicht moeglich
c:\program files\microsoft visual studio\vc98\include\utility(25) : Siehe Deklaration von 'first'
c:\program files\microsoft visual studio\vc98\include\utility(21) : Bei der Kompilierung der Member-Funktion '__thiscall std:air<char [5],int>::std:air<char [5],int>(const char (&)[5],const int &)' der Klassenvorlage
Fehler beim Ausführen von cl.exe.
qwqwqwww.exe - 1 Fehler, 18 Warnung(en)
"Ich musste die Fehlerausgabe hier extram abkürzen weil 27000 Zeilen die maximale Beitragslänge überschreiten.."
Da ich den beim Buch beigelegten Compiler verwende kann ich nicht verstehen, warum es nicht funktoniert.
Ich würde mich freuen, wenn jemand helfen würde
Comment