[英]map comparator operator overloading
我正在嘗試使用Comparator進行地圖的鍵比較。
std::map<SomePointer,SomeValue, SomeComparator> testMap;
class SomeComparator
{
SomeComparator( ){ }
bool operator()( const SomePointer& sp1, const SomePointer& sp2) const
{
return sp1 == sp2;
}
}
我的問題是我是否需要重載operator()或進行其他操作以允許map :: find使用適當的比較器來比較兩個指針並檢索匹配的指針。
對於地圖,您需要提供<
比較類型-具體來說是“嚴格弱排序”。 當A不小於B且B不小於A時,它推論相等性。
但是,要回答您實際提出的問題:如果要提供上述比較器函子,則需要對該函子重載operator()
。 否則,您可以重載operator<
作為您的密鑰類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.