- Class外に書くより中に書いた方がいいでしょう
class Data{ public: int i; int p; int y; int order; static bool cmp_by_i(const Data &a, const Data &b) { return a.i < b.i; } static bool cmp_by_y(const Data &a, const Data &b) { return a.y < b.y; } }; ... // sort by year sort(list.begin(), list.end(), Data::cmp_by_y);
追記
- 比較関数を複数用意したいなら上記でOK
- 1つでいいならData自体に比較演算子を定義すれば十分