地图的密钥类型

问题描述:

刚刚在STL上看到了一个问题。问题是 当地图的关键字属于某些类型时,“<”不需要重载。 这些类型是什么?地图的密钥类型

不太明白这个问题!谢谢回答。

+2

我猜想原始类型和任何其他类型的数据已经定义了`operator RedX 2011-04-15 14:53:35

假设地图被实例化与所述默认比较器(即,作为map<Key,Value>没有第三个参数):

  • 内置数值类型
  • 指针
  • 为其std::less<Key>一直专业任何类型(只要专业化不需要operator<)。
  • 迂回地,任何已经有operator<超载的类型。

对于任何其它类型的键,在地图将尝试使用表达式像key1 < key2,其如果存在的operator<的密钥类型的过载会只编译对它们进行比较。

基本上,已经定义了<的原始类型。