【发布时间】:2009-01-26 19:58:32
【问题描述】:
所以,我遇到了这种情况,我需要查看一个对象是否在我的 stl 映射中。如果不是,我会添加它。
char symbolName[] = { 'H', 'e', 'l', 'l', 'o', '\0' };
map<string,TheObject> theMap;
if (theMap.find(symbolName)==theMap.end()) {
TheObject theObject(symbolName);
theMap.insert(pair<string, TheObject>(symbolName,
theObject));
}
当对象不在地图中时,我在 theMap.find 上获得核心转储。 假设,如果项目不在地图中,它应该返回一个等效于 map::end 的迭代器
这是怎么回事?
GCC:3.4.6
【问题讨论】:
-
嗯...知道
TheObject::TheObject(???)是什么会有所帮助。 -
附带说明,你可以只做 char symbolName[] = "Hello";
-
不管它是什么?它只是一个被“散列”的对象。
-
地图可以实现为二叉树
-
几乎可以肯定它是作为二叉树实现的。