C++相談室 part34
■ このスレッドは過去ログ倉庫に格納されています
0389デフォルトの名無しさん
NGNGclass Personal {
string name, sex, tel, email;
int age;
}
例えば、こんなクラスで、あるときはnameで、あるときはageでソートや検索をしたいという場合です。
operator== や operator< はクラスで1つしか持てないので、別の比較関数(or関数オブジェクト)を用意する必要があると思いますが、
どこで用意するのが管理しやすいでしょうかね・・・。
マネージャクラスを別に作って、そこにstaticな比較関数を持たせるのが一番楽かなと思っているんですが・・・
class PersonalManager {
public:
static bool AgeCompareLessl(Personal &p1, Personal &p2){ return p1.age < p2.age}
;
}
としておいて、
vector<Personal> v;
sort(v.begin(), v.end(), PersonalManager::AgeCompareLess);
これじゃぁ、あんまり頭よさそうじゃないですよね。
もっといい案あったら教えてください。
■ このスレッドは過去ログ倉庫に格納されています