簡體   English   中英

映射比較器運算符重載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM