【发布时间】:2009-08-11 17:00:05
【问题描述】:
typedef std::map<int, MyObject*> MyMap;
MyMap* myMap = new MyMap;
// ...
myMap->insert( MyMap::value_type( 0, objectOfType_MyObject ) );
为什么我的代码会崩溃,堆栈跟踪会下降到
std::less<int>::operator()
?
我知道如果我使用自定义键类,我必须提供一个比较器,但这是一个 int。
我以前从未使用过地图,这可能是一个愚蠢的问题,但我已经被这个问题困扰了很久了。
谢谢
【问题讨论】:
-
堆栈跟踪是什么样的?
-
提供完整的堆栈跟踪或使用 valgrind 来检测一些内存滥用 :-)
-
可能是一个愚蠢的评论..但是你确定你没有在插入之前删除 myMap 对象吗?