のカスタムコンパレータをコーディングしたいと思いますstd::multimap
。私がやりたいことは、キーが等しい場合はキーを比較してから、値を比較することです。operator()
構造体でオーバーロードし、関数オブジェクトをstd::multimap
コンストラクターの 3 番目のパラメーターとして渡すことで、それを実行しようとしています。
struct CustomComp {
bool operator()(int key_lhs, int key_rhs){
if (key_lhs < key_rhs) return true;
if (key_lhs == key_rhs) //Check values;
else return false;
}
};
multimap<int, int, CustomComp> myMap;
両方がintの場合、キーだけでなく値にアクセスするにはどうすればよいですか?