我知道在对地图进行排序时使用相等而不是等价是不好的做法。
//Equality
bool isEqual(const A& a1, const A& a2 )
{
return a1 == a2 ;
}
但是,我有几个非常复杂的类要映射,并且我为这些类定义了 operator==,但没有定义 operator<。
谁能给我充分的理由不使用 operator== 进行地图比较?我想不出它会在我的课堂上崩溃的例子(如果需要,我可以添加我的课堂源代码)
我也应该咬住构建并编写新的操作符< :-/ 吗?
我会为我的地图做这样的事情。
std::map<A,B,isEqual> ex1;
也会
ex1.find(A);
现在使用相等而不是等价?