私はたくさん検索しましたが、これがクエリが繰り返されているかどうかはわかりませんが、これをstd::vector参照として使用して、次のタイプのデータを取る私のソートを作成しました。
typedef struct {
int size;
int type;
int id;
} AC;
基準ごとに個別の関数オブジェクトを作成できました。sizeただし、私のプロジェクトの要件では、 、 、に従ってソートするためのすべての関数オブジェクトを含めるには、クラスまたは構造体が 1 回だけ必要であるtypeと述べていますid。すべての関数オブジェクトをstd::sort1 つのクラスに含めることは可能ですか?
私は次のようなことを意味します
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ますか?