【发布时间】:2014-09-23 01:11:21
【问题描述】:
我对使用地图比较陌生,我目前正在使用Debug Assertion Failed Expression: map/set iterator not dereferencable
当我点击重试时,它会将我带到这部分代码:
auto temp = mOpenMap.find(currentNode);
temp->second = false;
我认为这与返回地图末尾的 .find(currentNode) 有关,因为它没有找到它,但这里有关的部分是在进行手动调试时,我发现唯一的 Node 在地图确实包含我搜索的currentNode 的确切部分。
我的地图是这样的:
std::map<PathNode*, bool> mOpenMap
乐观地说,我希望它搜索 row 和 column 以确定它正在查看一个已经搜索过的节点,以便我可以将随附的 boolean 设置为 false。
我想知道的是,地图通常如何搜索对象?或者更好的是,如何使用自定义搜索进行地图搜索?
【问题讨论】:
-
有时这可能表明您通过值而不是通过引用将映射传递给函数,但在这种情况下看起来不太可能。
标签: c++ map path-finding