C++ 如何使用std::pair作为键std::map

C++ 如何使用std::pair作为键std::map,c++,stl,C++,Stl,我想定义一个std::map,其键为std::pair如下 typedef std::mapmy_map 这是否允许,以及如何为此类映射编写比较运算符。是的,这是允许的 std::pair已经有了一个操作符是,这是允许的 std::pair已经有一个运算符当您。。。试试看?为什么不允许呢?如何编写< STD::MAP>代码>的比较运算符?C++平台文档如何 STD::配对< /代码>?答案就在那里。当你。。。试试看?为什么不允许呢?如何编写< STD::MAP>代码>的比较运算符?C++平台

我想定义一个
std::map
,其键为
std::pair
如下

typedef std::mapmy_map

这是否允许,以及如何为此类映射编写
比较运算符。

是的,这是允许的

std::pair
已经有了一个
操作符是,这是允许的


std::pair
已经有一个
运算符当您。。。试试看?为什么不允许呢?如何编写< <代码> STD::MAP>代码>的比较运算符?C++平台文档如何<代码> STD::配对< /代码>?答案就在那里。当你。。。试试看?为什么不允许呢?如何编写< <代码> STD::MAP>代码>的比较运算符?C++平台文档如何<代码> STD::配对< /代码>?答案就在那里。呸,你打败了我。。。现在删除我的次优答案!值得一提的是,它的定义仅用于词典比较。因此,对于一对
int
s,您必须自己定义它。@visitor:没有发现任何官方信息,但是@ezdazuzena为什么这意味着您需要定义自己的int对比较?在大多数情况下,这不是你想要的int对的行为吗?@ezdazuzena它没有按字典顺序比较各个项目(你怎么能按一般方式实现呢?)。这里的意思是,它被第一个元素比较,如果第一个元素等于第二个元素。对于单个元素的比较,它使用元素“
operatorBah,你打败了我。。。现在删除我的次优答案!值得一提的是,它的定义仅用于词典比较。因此,对于一对
int
s,您必须自己定义它。@visitor:没有发现任何官方信息,但是@ezdazuzena为什么这意味着您需要定义自己的int对比较?在大多数情况下,这不是你想要的int对的行为吗?@ezdazuzena它没有按字典顺序比较各个项目(你怎么能按一般方式实现呢?)。在这里,词典学的意思是,它通过第一个元素进行比较,如果第一个元素与第二个元素相等。对于单个元素的比较,它使用元素“
操作符