我试图为矢量创建一个排序函数。 这就是我写的
struct Xgreater
{
bool operator()( const lineCommand& lx, const lineCommand& rx ) const {
return lx.getEndTime() < rx.getEndTime();
}
};
我的班级在哪里:
class lineCommand {
public:
lineCommand(float startTime, float endTime);
virtual ~lineCommand();
//those are short inline functions:
//setting the starting time of the command
void setStartTime(const float num){mStartTime=num;};
//setting the ending time of the command
void setEndTime(const float num){mEndTime=num;};
// returning the starting time of the command
float getStartTime(){return mStartTime;};
// returning the ending time of the command
float getEndTime(){return mEndTime;};
private:
float mStartTime;
float mEndTime;
};
不在xgreater中。我在日食中得到错误说:
Invalid arguments '
Candidates are:
float getEndTime()
通过:
lx.getEndTime and rx.getEndTime
答案 0 :(得分:4)
按以下方式声明函数
float getEndTime() const {return mEndTime;};
^^^^^
在此运算符声明中
bool operator()( const lineCommand& lx, const lineCommand& rx ) const {
return lx.getEndTime() < rx.getEndTime();
}
参数lx
和rx
是常量引用。因此,您可以使用这些引用仅使用限定符const调用成员函数。
您可以使用相同的方式声明函数getStartTime
float getStartTime() const {return mStartTime;};