永发信息网

c++ map 容器排序

答案:2  悬赏:0  手机版
解决时间 2021-04-02 09:44
c++ map 容器排序
最佳答案
默认遍历序是根据key升序排列的。
map m;
for (map::iterator it = m.begin(); it != m.end(); ++it)
{
// it->first 是 key, it->second 是 value,遍历顺序是按key升序。
cout << it->first << ":" << it->second << endl;
}
全部回答
很简单:
#include <map>
#include <string>
#include <functional>
std::map<std::string,std::string,std::greater<std::string> > container;
因为map的定义默认是用std::less来比较的,而std::less和std::greater都在同一个头文件<functional>里面,可能map本身就包含着<functional>,你试一试你的库实现里面能不能把#include<functional>删去但仍然能用std::greater模板。std::less和std::greater本身也很简单。如果你不想包含着一个这样的文件(因为functional里面还有很多的函数对象),可以自己写:
template<class T> struct greater{
typedef T first_argument_type;
typedef T second_argument_type;
typedef bool result_type;
// 一般来说上面三句可有可无,因为没有什么用。下面这句才是根本。
bool operator()(const T& a,const T& b) { return a > b; }
};
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2018年岁运并临,请求大师指点.我在这跪谢!出
hpT795 怎么疏通管道
我的迈腾1.8为什么油耗这么高,有什么办法
87年的女生和98年的男生相爱相恋在一起,你们
中国银行的异地存款是指跨市还是跨省
奔驰g丨e400百公里加速
东丰县第一幼儿园怎么样?
龙达国际货运代理在哪里啊,我有事要去这个地
股票市场的净流入和净流出是什么意思
有没有想减肥的
变压器上ta=60 C什么意思
哪里私密做的好
注入粘度计的液体体积是否越多越好?
当年,邮差马龙为什么转会湖人后就突然陨落了
出生于九七年的是不是90后
推荐资讯
22个平方用2040的砖需要多少块
74年女属虎人会离婚吗
LG电视60UH6500-CB怎么样
打算毕了业去四川电大,不知道要花多少钱,要
穿降体服出汗多在海边跑步风大没事吧?还有补
古币怎么交易在哪交易?
生蚝死了还能吃吗,死生蚝能吃吗
如何区分风冷型螺杆空压机和水冷型螺杆空压机
赵棚镇合山村村民委员会地址有知道的么?有点
请问男命丙申年辛卯月庚子日丁亥时出生,八字
沙棘可以和玫瑰一起 泡茶喝么?
单选题下列说法正确的是①自尊和尊重他人都会
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?