我的代码在我的 Visual Studio 2010 上存在一些问题,但在 DevCPP 上没有。继承人的情况,我在我的代码中使用 C++ STLset
插入pair<string, double>
,但我希望我set
使用值而不是键对它们进行排序,所以我使用自定义比较器来实现这一点。
struct sortPairSecond
{
bool operator()(const pair<string, double> &lhs, const pair<string, double> &rhs)
{
return lhs.second >= rhs.second;
}
};
该代码在 DevCPP 中运行良好,但在使用 VS2010 的 xtree 上遇到了 Debug Assertion Failed。我做了一些调试,我意识到错误是由在自定义比较器中使用 >= 引起的,消除 = 使代码工作但不正确的结果,因为在我的程序中应该允许重复值。因此,任何人都可以在这件事上帮助我吗?