私はたくさん検索しましたが、これがクエリが繰り返されているかどうかはわかりませんが、これをstd::vector
参照として使用して、次のタイプのデータを取る私のソートを作成しました。
typedef struct {
int size;
int type;
int id;
} AC;
基準ごとに個別の関数オブジェクトを作成できました。size
ただし、私のプロジェクトの要件では、 、 、に従ってソートするためのすべての関数オブジェクトを含めるには、クラスまたは構造体が 1 回だけ必要であるtype
と述べていますid
。すべての関数オブジェクトをstd::sort
1 つのクラスに含めることは可能ですか?
私は次のようなことを意味します
Comparator com;
sort(iVec.begin(),iVec.end(),com.sortbysize);
sort(iVec.begin(),iVec.end(),com.sortbytype);
sort(iVec.begin(),iVec.end(),com.sortbyid);
要件を満たすためにも調べましbinary_functions
たが、単一のクラスで複数の関数オブジェクトを宣言すると、エラーが発生しました。
std::sort
さらに、(さらに言えば、比較を含む STL アルゴリズム) の関数オブジェクトが必要であるbool operator()
か、またはそれらが通常の関数を返す必要がありbool
ますか?