ich einen String Karte in es mit zwei Einträgen haben: "Chicago"--> ChicagoObj
und "NewYork"-->NewYorkObj
, wo ChicagoObj
und NewYorkObj
Zeiger auf Objekte von MyClass
sind.std :: map funktioniert unter Windows 32-Bit aber stürzt auf 64-Bit-
Der folgende Code kompiliert und läuft gut in 32-Bit, kompiliert es in 64-Bit, aber stürzt immer in 64-Bit nach dem Ausdruck Chicago Eintrag ab. Jede Hilfe wird geschätzt!
typedef std::map<std::string, MyClass*> MyStringMap;
MyStringMap my_map;
std::string key1="Chicago";
MyClass *ChicagoObj = new MyClass;
my_map[key1] = ChicagoObj;
std::string key2="NewYork";
MyClass *NewYorkObj = new MyClass;
my_map[key2] = NewYorkObj ;
MyStringMap::iterator iObjMap = my_map.begin();
while (iObjMap != my_map.end())
{
std::string key = iObjMap->first;
std::cout<<"name of the key in the map: " << key <<std::endl;
iObjMap++;
}
Ich sehe gemischte Verwendung von "string" und "std :: string", ich nehme einen Tippfehler an, sonst ist es möglich, dass "string" möglicherweise gar kein "std :: string" ist. – SirDarius
Sie sollten keine 'C'-artigen Umwandlungen mit Objekttypen wie' std :: string' verwenden, auch wenn es in diesem Fall harmlos aussieht. – Chad
Kompiliert dieser Code tatsächlich? Es scheint ein paar Dinge zu fehlen, zum Beispiel, was ist "my_map"? – josephthomas