ソートアルゴリズムを使用してクライアントのvector
をソートしたいが、問題は2つの異なる条件で並べ替えることだ。同じ演算子とクラスの2つのオーバーロード関数
これを画面に表示してファイルに保存するには、IDで並べ替える必要がありますが、他のもの(トップ10の最悪のクライアントを知っているようなもの)に使用するには、彼らが費やしたお金の
これらはクライアントクラスのoperator==
のオーバーロード機能ですが、明らかに共存できません。誰かが私にこれのための解決策を与えることができますか? std::sort
関数オーバーロードの
class Client
{
public:
//...
unsigned int getID() const;
double getSum() const;
//...
private:
unsigned int ID;
//...
double sum;
};
bool operator==(const Client &LHS, const Client &RHS)
{
return (LHS.getID() == RHS.getID());
}
bool operator==(const Client &LHS, const Client &RHS)
{
return (LHS.getSum() == RHS.getSum());
}
彼らは名前のメンバ関数を作りますか? – NathanOliver
明示的コンパレータでソートすることができます。 – user2357112
演算子==は単なる例で、明らかにソートアルゴリズムも他のものを使用します(< and >) –