关于map的问题
最近在学stl,有一个问题请教各位大虾:map默认是从小到大进行排序的,可是现在我需要从大到小排序,请问有什么方法可以实现吗?
[解决办法]
我觉得使用map不用管map内部如何排序吧。
[解决办法]
map默认是从小到大进行排序的,可是现在我需要从大到小排序,
=============
map类模板的第三个类型参数 就是来做这件事的. 例如:
map <int, string, greater <int> > m; // 这个m就是从大到小的
所以只要键的类型可以用 > 比较就可以用 greater <键的类型> 作为第三个模板参数.
也可以写一个用来比较的仿函数类如:
struct Dayu {
bool operator()(cosnt MyType & l, const MyType& r) { return ..... }
};
[解决办法]
greater <>
[解决办法]
看看这个:
www.cad.zju.edu.cn/home/siuleung/download/STL_map_algorithm.ppt
[解决办法]
第三个参数给定 map 的排序准则,
该准则可以是自定义函数,
也可以是一个 functor(仿函数/函数对象)
通常多使用 functor。