在我的 SDL 程序中,我使用映射构造来模拟某个类中的“无限”对象数组。代码设法编译得很好,但是当我运行程序时,一旦触发使用映射的函数之一,程序就会崩溃,返回值 3。
所以,这正是我正在做的事情:
class MyClass
{
public:
int MyFunction();
protected:
std::map< int, MyObject > MyMap;
}
int MyClass::MyFunction()
{
...
int i;
if( MyMap.empty() )
{
i = 1;
}
else
{
i = MyMap.size() + 1;
}
MyMap[ i ] = PreviouslyDefinedObject;
return i;
}
当从 MyClass 对象调用 MyFunction() 时,会发生崩溃。每当使用 MyMap 完成任何使用时,它似乎都会发生:如果您注释掉倒数第二行并尝试返回 i,它会崩溃,如果您只是设置 i = 1,然后将对象分配给 MyMap[i],它会崩溃
这是我第一次使用地图,所以我不确定我是否正确使用它们。这是某个地方的基本错误吗?谁能指出我正确的方向?干杯。