java vector pair_vector中pair的排序方法

直接上代码:

bool judge(const pair a, const pairb) {return a.first

}intmain()

{

vector>p;

p.push_back(make_pair(10,'a'));

p.push_back(make_pair(9,'c'));

p.push_back(make_pair(10,'t'));

p.push_back(make_pair(17,'y'));

p.push_back(make_pair(10,'b'));

sort(p.begin(),p.end(),judge);for(auto i=0;i

cout<

system("pause");

}

通过传递一个函数 judge 给sort函数 , 注意: judge 中return a

return a>b;  决定为从大到小的排序

华为机试题:

如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。

实现以下接口:

输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)

按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出

清空目前的统计结果,重新统计

调用者会保证:

输入的字符串以‘\0’结尾。

输入描述:

输入一串字符。

输出描述:

对字符中的

各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。

输入例子:

aadddccddc

输出例子:

dca

#include#include#include#include

using namespacestd;bool judge(const pair a,const pairb){if(a.second!=b.second) return a.second>b.second;else

return a.first

}intmain()

{stringc;while(cin >>c){int len =c.size();

vector>re;for(int i=0;i

flag=1;break;}

}if(flag!=1){for(int j=i+1;j

}

re.push_back(make_pair(c[i],count));

}

}

sort(re.begin(),re.end(),judge);for(int i=0;i

cout<

}

cout<

}return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值