我知道这个链接已经回答了类似的问题帮助我修复这个 C++ std::set 比较器 ,但不幸的是我面临着完全相同的问题,我无法理解它背后的原因,因此需要一些帮助来解决它。
我正在使用 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() 函数来比较存储在我的集合中的宽字符串吗?
提前致谢!!!