我有比較新的使用地圖,以及目前我得到的Debug Assertion Failed Expression: map/set iterator not dereferencable
C++地圖/套迭代器不使用dereferencable .find
當我打重試它帶給我的這部分代碼:
auto temp = mOpenMap.find(currentNode); temp->second = false;
我認爲這具有與.find(currentNode)
返回的地圖做結尾,因爲它沒有找到它,但這裏的有關部分是當仁不讓的手動調試,我發現,在地圖中唯一Node
確實包含了currentNode
的確切部分我曾搜索過f要麼。
我的地圖是這樣的:
std::map<PathNode*, bool> mOpenMap
樂觀我想它做的是搜索的row
和column
以確定它正在尋找一個已經被搜索過,這樣一個節點我可以將伴隨的boolean
設置爲false。
我想知道的是,地圖一般如何搜索對象?或者更好的是,我怎樣才能使用自定義搜索進行地圖搜索?
有時候,這可能表示您已將值映射傳遞給函數而不是引用,但在這種情況下看起來不太可能。 – 2014-09-23 01:27:39