マップを並べ替えるときに、同等ではなく同等を使用することは悪い習慣です。
//Equality
bool isEqual(const A& a1, const A& a2 )
{
return a1 == a2 ;
}
ただし、マップしたい非常に複雑なクラスがいくつかあり、これらのクラスに対してoperator ==を定義しましたが、operator<は定義していません。
マップの比較にoperator==を使用しない正当な理由を誰かに教えてもらえますか?私のクラスでそれが壊れてしまう例を考えることはできません(必要に応じてクラスのソースコードを追加できます)
また、ビルドをかじって新しい演算子を書く必要があります<:-/?
私は自分の地図に対してこのようなことをします。
std::map<A,B,isEqual> ex1;
また
ex1.find(A);
今、同等性の代わりに平等を使用しますか?