返回信息流rt~
这是一条镜像帖。来源:北邮人论坛 / cpp / #45104同步于 2010/10/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【请教】:如何按照map中值出现的次数来进行排序呢
xiaoyu513
2010/10/22镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
想到一个效率比较低的方法...把map里面的值一个一个的取出...放入一个priority_queue里面....重载一个()操作符,让他按次数作为优先级的判定 然后把priority_queue的一个一个弹出再insert到一个map里
new Comparator<Foo>() {
public int compare(Foo o1, Foo, o2) {
return someMap.get(o1).compareTo(someMap.get(o2));
}
}
【 在 wks 的大作中提到: 】
: new Comparator<Foo>() {
: public int compare(Foo o1, Foo, o2) {
: return someMap.get(o1).compareTo(someMap.get(o2));
: ...................
还想请问下 如果是一个vector<int>,怎么按照vector元素出现的次数来排序,然后取出出现次数最多的几个元素呢?
我还真干过这件事:
假设vector<string>数组储存了"one","two","three","four","five"
那么就建立一个map<string,int>:
"one" -> 0
"two" ->1
"three" -> 2
"four" -> 3
"five" -> 4
这样就行了。每次通过单词查询,按得到的数字排序。
vector<int>类似。
【 在 xiaoyu513 的大作中提到: 】
: : new Comparator<Foo>() {
: : public int compare(Foo o1, Foo, o2) {
: : return someMap.get(o1).compareTo(someMap.get(o2));
: ...................