C++ std::map::erase(迭代器)引发访问冲突

C++ std::map::erase(迭代器)引发访问冲突,c++,stl,map,access-violation,C++,Stl,Map,Access Violation,我拼凑的一些代码有问题。当我试图通过键或迭代器删除一个条目时,我会遇到访问冲突( 这一行: || _Ptr != 0 && (*_Pnext)->_Ptr != _Ptr) 在xtree中) 这似乎只有在我之前处理一些迭代器时才会发生(对映射值中的集合进行操作) 在可收缩的邻接列表图中引发了异常。cpp:81 如果注释掉第76行到第79行,则不会引发此问题 有人能告诉我哪里出了问题(除了编写完全低效和冗余的代码之外) 编辑:忘记上载问题实例: Edit2:代码再精简一点。

我拼凑的一些代码有问题。当我试图通过键或迭代器删除一个条目时,我会遇到访问冲突( 这一行:

|| _Ptr != 0 && (*_Pnext)->_Ptr != _Ptr)
在xtree中) 这似乎只有在我之前处理一些迭代器时才会发生(对映射值中的集合进行操作)

在可收缩的邻接列表图中引发了异常。cpp:81

如果注释掉第76行到第79行,则不会引发此问题

有人能告诉我哪里出了问题(除了编写完全低效和冗余的代码之外)

编辑:忘记上载问题实例:


Edit2:代码再精简一点。

让我下载您的项目……您似乎没有检查hr
\u Pnext
是否有效。下划线-大写名称保留用于实现。如果您的程序使用类似
\u Ptr
的名称,则该程序的格式不正确。次要OT提示:请对您的问题内容使用适当的大写。@KerrekSB
是实现的一部分。。。