我知道在對地圖進行排序時,使用相等性而不是等價性是不好的做法。在地圖比較中使用平等
//Equality
bool isEqual(const A& a1, const A& a2)
{
return a1 == a2 ;
}
不過,我有一對夫婦,我要地圖非常複雜的類的,我已經定義的==操作符這些類,而不是運營商<。
任何人都可以給我很好的理由不使用operator ==進行地圖比較嗎?我想不出一個例子,它會在我的課堂中崩潰(如果需要,我可以添加我的課程源代碼)
另外,我應該咬一口建造並編寫新的操作員<: - /?
我會爲我的地圖做這樣的事情。
std::map<A,B,isEqual> ex1;
也將
ex1.find(A);
現在使用的平等,而不是等價?
你想實現什麼?我無法理解這個要求。 – iammilind
@iammilind我有兩個班(說A和B)組成新班(說C,D,E,F ...),但有很多不同的組合來做到這一點。我需要確保沒有類型A和B的重複項,所以我需要找到重複項並將其刪除。希望這是有道理的... – MWright
從哪裏刪除它們? 'maps'和'sets'不能有重複。 – juanchopanza