c ++ map/set iterator not dereferencable

ber*_*ndh 5 c++ iterator multiset

我想问你一个提示,因为我是初学者,在互联网上找不到合适的答案.我收到此错误: debug assertion failed - map/set iterator not dereferencable 在看起来像这样的行:

pointA = active->pointNext(timeNext);
Run Code Online (Sandbox Code Playgroud)

使用函数pointNext(),因为我看到一切正常,有什么问题是活跃的,我有:

active = setS.data.end();
Run Code Online (Sandbox Code Playgroud)

更多信息:

activemultiset <classA,classB :: classC> :: const_iterator

setS具有:setS.Q,setS.W,setS.TsetS.data,其中setS.data在方括号内有0.当我在.cpp文件中有multiset迭代器声明时,在调试期间我无法进入以查看活动内部是什么,当它在.h文件中时,我可以.

在.cpp中我无法进入活动状态,因此可以想象它就像指针(迭代器)不能解除引用,因为内部是错误的.如果它是空的,即如果setS.data为空,该怎么办?或者里面有垃圾吗?

我知道之前在linux下运行的东西,是否有一些我必须改变才能在Windows上运行的功能?例如,将一些模板参数更改为仅一个?(正确地将setS.data归活动,因为我不确定 - 我是否正确地做到了?

对于这个相当混乱的帖子感到抱歉,我想加上我的猜测,如果他们错了,就会忽视他们.如果这里的某些内容不清楚或缺乏某些信息,我很乐意添加它.你能否告诉我什么原因可能导致我得到的失修错误,我应该在哪里寻找它?因为我被困住了,不知道该怎么办.

任何帮助非常感谢,谢谢!

NPE*_*NPE 10

很简单,因为active指向容器end(),所以不允许取消引用它.

我知道之前在linux下运行的东西

如果代码完全像这样并且"正在运行",那么这一切意味着错误从未以您注意到的方式表现出来.