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