コードではEvents
のキューがwaitTime
でソートされています。私はEvents
は、現在の瞬間のために実行すべきかを見つけたいので、私はこれを行う:オーバーロードでエラーが発生しました: 'operator <'の一致がありません
std::vector<Event>::iterator up = std::upper_bound(queue.begin(), queue.end(), currentTime);
私は<
演算子オーバーロード場合std::upper_bound
は動作します:
bool Event::operator<(const double& currentTime) const
{
return waitTime < currentTime;
}
をしかし、私はエラーがあります。
error: no match for ‘operator<’ (operand types are ‘const double’ and ‘Event’)
「オペレーター<」を正しくオーバーロードするにはどうすればよいですか?
P.S
class Event{
public:
double startTime;
double waitTime;
double size;
Event(double start, double wait, double size);
bool operator<(const Event& otherEvent) const;
bool operator<(const double& currentTime) const;
bool operator() (const Event & event, const double & right);
};
endTimeとは何ですか? –
「イベント」は...と定義されていますか? – max66
分割されていないコードの断片ではなく、[mcve]を投稿してください。 –