崩潰我有一個字符串映射在它的兩個條目: "Chicago"--> ChicagoObj
和"NewYork"-->NewYorkObj
,其中ChicagoObj
和NewYorkObj
是指針的MyClass
對象。的std ::地圖適用於Windows 32位,但在64位
以下代碼在32位編譯並運行正常,它在64位編譯,但在打印芝加哥條目後總是在64位崩潰。任何幫助表示讚賞!
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++;
}
我看到「字符串」和「std :: string」的混合使用,我假設一個錯字,否則可能「字符串」根本可能不是一個「std :: string」。 – SirDarius 2012-04-03 16:22:31
即使在這種情況下它看起來無害,你也不應該使用像'std :: string'這樣的對象類型的'C'類型轉換。 – Chad 2012-04-03 16:27:49
這段代碼是否實際編譯?它似乎缺少一些東西,例如什麼是「my_map」? – josephthomas 2012-04-03 16:27:58