C++ Massenhaft Warnings bei der Verwendung von STL Maps

Abcd12345

Lt. Junior Grade
Registriert
März 2006
Beiträge
483
Hi,

Ich habe große Probleme mit der Verwendung von STL Maps. Ich mache alles genau so, wie es in dem Buch beschrieben ist, das ich grade lese und habe sogar schon ein Übungsbeispiel von der beigelegten CD versucht zu kompelieren. Aber egal was ich mache ich bekomme haufenweiße Warnings und Fehler, die ich nicht nachvollziehen kann..

Code:
#include <iostream>
#include <map>
#include <string>

using namespace std;

// Hauptprogramm
//
int main ()
{
    
	
	// Variablen
    //
    map<string, int> Liste;
    map<string,int>::iterator i;
    pair<string,int> Stadt;

	//Paare machen
    Stadt = make_pair("Berlin", 4000000);
    Liste.insert(Stadt);

    Stadt = make_pair ("Hamburg", 1000000);
    Liste.insert(Stadt);

    for(i = Liste.begin(); i != Liste.end(); i++)
    {
        cout << "Die Stadt ist " << i->first << " und sie hat " << i->second << " Einwohner" << endl;
    }

    return 0;

}
 
Noch vergessen:

Hier sind die, für mich kryptischen Warnungen und die Fehlermeldung.. "sind nicht alle da das die maximale Zeilenlänge überschreitet..


c:\program files\microsoft visual studio\vc98\include\xtree(176) : Bei der Kompilierung der Member-Funktion '__thiscall std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::cha
r_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::les
s<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::~std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<c
har> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::c
har_traits<char>,std::allocator<char> > >,std::allocator<int> >(void)' der Klassenvorlage
c:\program files\microsoft visual studio\vc98\include\xtree(182) : warning C4786: '_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>,
std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::les' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
c:\program files\microsoft visual studio\vc98\include\xtree(176) : Bei der Kompilierung der Member-Funktion '__thiscall std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,
struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::~std::_Tree<class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<char,struc
t std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string<char,stru
ct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >(void)' der Klassenvorlage
c:\program files\microsoft visual studio\vc98\include\xtree(182) : warning C4786: '~_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int>
,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::le' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
c:\program files\microsoft visual studio\vc98\include\xtree(176) : Bei der Kompilierung der Member-Funktion '__thiscall std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,
struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::~std::_Tree<class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,int>,struct std::map<class std::basic_string<char,struc
t std::char_traits<char>,class std::allocator<char> >,int,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >::_Kfn,struct std::less<class std::basic_string<char,stru
ct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<int> >(void)' der Klassenvorlage
c:\program files\microsoft visual studio\vc98\include\xtree(182) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,
int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<cha
r>,std::allocator<char> > >,std::allocator<int> >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
c:\program files\microsoft visual studio\vc98\include\xtree(176) : Bei der Kompilierung der Member-Funktion '__thiscall std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::cha
r_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::les
s<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::~std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<c
har> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::c
har_traits<char>,std::allocator<char> > >,std::allocator<int> >(void)' der Klassenvorlage
c:\program files\microsoft visual studio\vc98\include\xtree(236) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,
int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<cha
r>,std::allocator<char> > >,std::allocator<int> >::_Node' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert
c:\program files\microsoft visual studio\vc98\include\xtree(216) : Bei der Kompilierung der Member-Funktion 'std::pair<std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char
_traits<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less
<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::iterator,bool> __thiscall std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_trait
s<char>,std::allocator<char> > const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::
basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::insert(const std::pair<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::pair<char [7],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::pair<char [7],int>::std::pair<char [7],int>(const char (&)[7],const int &)' der Klassenvorlage
Fehler beim Ausführen von cl.exe.

dqdq.exe - 1 Fehler, 18 Warnung(en)
 
Verwendest du den alten (und nicht sonderlich standardkonformen) Visual C++ 6 Compiler? Dein Beispiel compiliert bei mir in Visual Studio 2008 ohne Fehler.
 
Hi nochmal,

Es ist bestimt die ältere Version des Compilers, da das Programm auf einer CD von dem Buch war, das ich grade durcharbeite. Es ist zeimlich ärgerlich, dass die Beispiele die im Buch angegben sind nicht lauffähig mit der beigelegten Software sind.. Ich würde es gerne Vermeiden können 250+ für VB 2088 bezahlen zu müssen :(

Kann man da denn überhaupt nichts machen?
 
Es gab irgendwo eine Option, diese Warning zu unterbinden. Weiß es leider nicht mehr aus dem Kopf, sollte mit etwas googeln aber fix gefunden sein. Such mal hiernach: "Bezeichner wurde auf '255' Zeichen in den Debug-Informationen reduziert" und vielleicht Visual C++ 6.
 
Hi,

Ich hab mir jetzt Visual Studio Express gehollt und siehe da es funktoniert damit einwandfrei. Soweit schonmal danke :).

Ich hab aber noch ein Problem :

Bei Visual Studio 6 war es immr so das er mir wenn ich die ersten 2 Wörter eines BEfehls oder eienr Variabel eingetippt habe, ich immer aus einem Menü Auswählen konnte, was ich genau wollte, dass sparte Zeit und vermied Tippfehler.

Gibt es eine möglichkeit diese Funktion auch bei Visual Studio Express zu haben?
 
Sollte normalerweise genau so ohne weitere Einstellungen gehen O.o . Nennt sich übrigens IntelliSense.
 
Es geht aber irgendwie nicht.. selbst nach neu instalation.. Ich habe jetzt auch mal den alten Compiler neuinstaliert und selbst da funktoniert das nicht mehr.. Was kann ich dagegen machen?
 
die warnungen kannste im normalfall einfach ignorieren.. sagen eigentlich nur aus, dass die namen der typen durch die vielen templates, die du da benutzt, zu lang geraten sind und gekürzt werden. spielt bei deinem beispiel nur beim debuggen ne rolle.
 
Zurück
Oben