operatorのつかいかた

class pred {
	string str; //受けたい型
public:
	pred(const string& _str) : str(_str) {} //初期化
	bool operator()( const pair< string , int > pr ) { return pr.first == str; }//自作関数みたいな感じ
};
struct que{
   int m,t,p,j;
};

bool operator()(const que& _Left, const que& _Right) {
		return _Left.t != _Right.t ? _Left.t < _Right.t :
			_Left.p != _Right.p ? _Left.p < _Right.p :
			_Left.j != _Right.j ? _Left.j < _Right.j : 
			_Left.m < _Right.m;
	}

find_ifやremove_ifを使うと自然と自作関数がたくさん出来てしまうから
operatorは使えるようにならなくてはいけない(戒め)