【发布时间】:2012-07-09 20:51:43
【问题描述】:
我正在编写一个小型游戏引擎作为一个夏季项目,并且在 STL 地图方面有点挣扎。
我已经声明了一个类RenderList 来保存对象。 RenderList 将被传递给 Renderer 类来完成这项工作。
RenderList 有一个map<std::string,Entity*> objects;
一切正常,直到我尝试从地图中获取 Entity* 并得到:
断言失败,在 vc/include/xtree 表达式:map/set 迭代器不可取消引用。
这是检索指针的代码。
Entity* RenderList::getByName(std::string str){
return objects.find(str)->second;
}
我需要它来保存一个指针而不是实际的对象,因为我需要 Entity 的不同子类。
我对 STL 还很陌生,我不应该在地图中存储指针吗?
当然应该允许我这样做,还是存储对象更好?
最后,我是不是做错了!?
希望这个问题不是重复的,我事先做了快速搜索。另外,如果这在 GameDev Stack 中会更好,我会在那里发布。
【问题讨论】: