【发布时间】:2012-11-09 21:41:32
【问题描述】:
我想问你一个提示,因为我是初学者,在互联网上找不到任何合适的答案。 我收到此错误: 调试断言失败 - 映射/设置迭代器不可取消引用 在看起来像这样的行:
pointA = active->pointNext(timeNext);
使用 pointNext() 函数,我看到一切正常,而 active 的问题是:
active = setS.data.end();
更多信息:
active 是 multiset::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,因为我不确定 - 我是否正确执行?
对不起,这篇相当混乱的帖子,我想添加我的猜测,如果他们错了,请忽略他们。如果这里有什么不清楚或缺少一些信息,我很乐意补充。 你能告诉我什么原因可能导致我得到解引用错误,我应该在哪里寻找它?因为我被卡住了,不知道如何继续。
非常感谢任何帮助,谢谢!
【问题讨论】: