【发布时间】:2011-07-05 00:13:32
【问题描述】:
当我取消引用列表迭代器时,我收到一条错误消息,指出无法取消引用迭代器。但是,当我构建发布版本时不会发生这种情况,只会在调试版本上发生。
有什么办法可以绕过这个错误吗?
【问题讨论】:
-
发布一段最小的、可编译的代码来演示这个问题。取消引用迭代器不应导致错误。
-
这个错误可能来自 Visual C++ 的库调试模式,它比其他一些库放入了更多的断言。您必须在代码中做错事才会触发错误。
-
好吧,我正在尝试通过以下方式比较同一列表的两个元素: if ( (*it) == (*it2) )
-
那么它们可能不是列表的元素,可能是列表的end()迭代器?
-
在调试模式下出现取消引用错误是有原因的。有额外的检查来确保您没有取消引用无效的迭代器。 99.99999999999% 可能是您的代码中的错误,而不是编译器的错误。
标签: visual-c++ list iterator