我有以下程序以小时:分钟:秒的形式比较时间。
class time
{
public:
string Hours;
string Minutes;
string Seconds;
};
bool CompareTimes(time A, time B)
{
if (A.Hours < B.Hours)
{
return true;
}
if (A.Minutes < B.Minutes)
{
return true;
}
if (A.Seconds < B.Seconds)
{
return true;
}
return false;
}
而在主要...
sort(TimeArray, TimeArray + NumberOfTimes, CompareTimes);
但是,这似乎无法正确排序。另一方面,如果我将 CompareTimes 方法更改为以下内容:
bool CompareTimes(time A, time B)
{
if (A.Hours > B.Hours)
{
return false;
}
if (A.Minutes > B.Minutes)
{
return false;
}
if (A.Seconds > B.Seconds)
{
return false;
}
return true;
}
然后一切正常。我认为如果第二个输入大于第一个输入,排序函数需要返回 true。为什么它在第一种情况下不起作用,但在第二种情况下起作用?