C++地图比较器

C++ map comparator

本文关键字:比较器 地图 C++      更新时间:2023-10-16

对于声明如下的 c++ 映射:

map < set<int>,int > x;

编译器使用的默认比较器函数是什么?
我使用此语句的代码成功执行,但我不确定它使用的比较器。

对于std::map<K, T>,默认比较器是 std::less<K>

std::less<K>使用lhs < rhs作为默认的比较方式。

在您的情况下,您最终会使用:

bool operator<(std::set<int> const& lhs, std::set<int> const& rhs)

默认情况下,这应该解析为

bool operator<(const std::set<int>&, const std::set<int>&)

请参阅此处以供参考。

对于std::mapstd::set都有一个可选的模板参数来定义比较类型(另一个用于分配器)。 使用它,您可以使用任何比较,包括用户定义的函数!

在这两种情况下,它默认为 std::less

查看每个文档!!

http://www.cplusplus.com/reference/set/set/

http://www.cplusplus.com/reference/map/map/