我想问你一个提示,因为我是初学者,在互联网上找不到任何合适的答案。我收到此错误: 调试断言失败 - map/set iterator not dereferencable 在如下所示的行:
pointA = active->pointNext(timeNext);
使用pointNext()函数,我看到一切正常,而关于active,我有:
active = setS.data.end();
更多信息:
活动是多集< classA, classB::classC >::const_iterator
setS有:setS.Q、setS.W、setS.T和setS.data,其中setS.data在方括号内有 0。当我在 .cpp 文件中有多重迭代器声明时,在调试期间我无法进入以查看内部活动的内容,当它在 .h 文件中时,我可以。
在 .cpp 我不能进入active,所以可以想象它就像指针(迭代器)不能取消引用,因为里面是错误的。如果它是空的,即setS.data是空的怎么办?或者里面是否有垃圾?
我知道这个东西以前在 linux 下运行,是否有一些我必须更改才能在 Windows 上运行的功能?例如将多个模板参数更改为一个?(正确地将setS.data归因于active,因为我不确定 - 我做得对吗?
很抱歉这个相当混乱的帖子,我想添加我的猜测,如果他们错了,我会忽略他们。如果这里有什么不清楚或缺少一些信息,我很乐意补充。你能告诉我什么原因可能导致我得到解引用错误,我应该在哪里寻找它?因为我被卡住了,不知道如何进行。
非常感谢任何帮助,谢谢!