【发布时间】:2015-02-11 01:28:03
【问题描述】:
bool sortingGame(Player Player1, Player Player2)
{
if (Player1.gamePercent() > Player2.gamePercent())// first compare precetage (float)
{
return true;
}
else if (Player2.gamePercent() > Player1.gamePercent())
{
return false;
}
else if (Player1.getLastName() > Player2.getLastName())//then names (std::string)
{
return true;
}
else if (Player2.getLastName() > Player1.getLastName())
{
return false;
}
else if (Player1.getFirstName() > Player2.getFirstName())
{
return true;
}
else
{
return false;
}
}
在 main() 中:
sort(Players.begin(), Players.end(), sortGame);
这是在 Visual Studio 中调试时显示的错误。
Program:C:\.....\include\algorithm
Line:3014
Expression: invalid operator<
【问题讨论】:
-
3014 到底是哪一行?
-
不确定...在#include
-
@pinesfrst Visual Studio 错误可能是由于您的
operator <不一致而出现的,即a < b但同时b < a。当然这是一种荒谬的情况,但是 Visual Studio 的调试运行时会针对这种错误情况进行测试,可能您的代码没有通过测试。 -
此外,您应该通过
const reference将对象传递给函数,而不是通过值。 -
要获得明确的答案,请发帖MCVE
标签: c++ string sorting operator-keyword