2011-04-15 85 views
1

剛剛在STL上看到了一個問題。問題是 當地圖的關鍵字屬於某些類型時,「<」不需要重載。 這些類型是什麼?地圖的密鑰類型

不太明白這個問題!謝謝回答。

+2

我猜想原始類型和任何其他類型的數據已經定義了`operator <`。 – RedX 2011-04-15 14:53:35

回答

2

假設地圖被實例化與所述默認比較器(即,作爲map<Key,Value>沒有第三個參數):

  • 內置數值類型
  • 指針
  • 爲其std::less<Key>一直專業任何類型(只要專業化不需要operator<)。
  • 迂迴地,任何已經有operator<超載的類型。

對於任何其它類型的鍵,在地圖將嘗試使用表達式像key1 < key2,其如果存在的operator<的密鑰類型的過載會只編譯對它們進行比較。

0

基本上,已經定義了<的原始類型。