崩溃我有一个字符串映射在它的两个条目: "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