力扣451
来源:4-3 set和map不同底层实现的区别
慕哥6157257
2021-05-14
波波老师,麻烦您看下我的程序。利用结构体排序,sort函数为什么不通呢,之前也是这么写的。
class Solution {
public:
struct node {
char id;
int fre;
}a[100];
bool cmp(node a1, node a2) {
return a1.fre >= a2.fre;
}
string frequencySort(string s) {
string ans;
unordered_map<char, int> map1;
for (char x : s) {
map1[x]++;
}
int cnt = 0;
for (auto x : map1) //从map结构中取出,以结构体的形式存取
{
a[cnt].id = x.first;
a[cnt++].fre = x.second;
}
sort(a, a+cnt, cmp);//这里报错,但我不知道为什么?
for (int i = 0; i < cnt; i++) {
for (int j = 0; j < a[cnt].fre; j++) {
ans.push_back(a[cnt].id);
}
}
return ans;
}
};
写回答
1回答
-
liuyubobobo
2021-05-15
cmp 是成员方法。成员方法的调用必须是:实例.成员方法。但是你将 cmp 传入 sort 是没有具体的 cmp 的实例的。
将 cmp 设置为 static 即可。
继续加油。
022021-05-15
相似问题