【发布时间】:2011-04-28 18:44:48
【问题描述】:
我知道类似问题已在此链接Help me fix this C++ std::set comparator得到解答 但不幸的是,我面临着完全相同的问题,我无法理解其背后的原因,因此需要一些帮助来解决它。
我使用的是 VS2010,我的发布二进制运行良好,没有任何问题,但调试二进制报告:
我的比较器如下所示:
struct PathComp {
bool operator() (const wchar_t* path1, const wchar_t* path2) const
{
int c = wcscmp(path1, path2);
if (c < 0 || c > 0) {
return true;
}
return false;
}
};
我的集合是这样声明的:
set<wchar_t*,PathComp> pathSet;
有人能告诉我为什么我的调试二进制文件在这个断言上失败了吗?是因为我使用 wcscmp() 函数来比较存储在我的集合中的宽字符串吗?
提前致谢!!!
【问题讨论】:
-
xtree 的第 960 行或附近有什么?
-
@960:
_Addleft = _DEBUG_LT_PRED(this->comp, this->_Kfn(_Val), this->_Key(_Trynode)); // favor right end