我遇到了一个问题,我想定义一个地图,它按照第一个降序排列内部。如果第一个不是主要类型,就像它是一个类,我可以重载“<”在那个类中,但我不知道如何处理int类型。有什么建议吗?
非常感谢!!
答案 0 :(得分:11)
添加比较器:
#include <functional>
map<int, value_type, greater<int>> m;
默认值为less<int>
。
答案 1 :(得分:1)
您可以在创建地图时指定比较器(它是可选的构造函数参数)。
e.g:
bool my_compare(int x, int y) { return y < x; }
std::map<int,T,bool(*)(int,int)> my_map(my_compare);
请注意,我还需要明确指定第3个模板参数。
[注意:我强烈建议您不要重载<
运算符以执行>
... ]
答案 2 :(得分:0)
查看std :: less实现:http://www.cplusplus.com/reference/std/functional/less/ 您可以编写自己的比较器并将其与map一起使用。