c++ - C++ wrt字符串中的STL排序函数
问题描述
所以我一直在尝试根据字符的频率对字符串进行排序。但是我一直在使用的在线法官向我显示错误
Line 17: invalid use of non-static member function 'bool olution::helper(char, char)'
为什么对我的函数的调用是错误的?我以前用过这个sort()
函数,但不是字符串。我的helper()
功能不正确吗?
class Solution {
public:
unordered_map<char,int> freq;
bool helper(char c1,char c2){
if(freq[c1]>freq[c2]) return false;
else return true;
}
string frequencySort(string s) {
for(char c:s)
{
freq[c]++;
}
sort(s.begin(),s.end(),helper);
return s;
}
};
解决方案
使用 lambda 捕获this
:
sort(s.begin(),s.end(),[this](auto a, auto b) -> bool { return helper(a,b); });
推荐阅读
- exception - 如何启动已关闭且无法ping通的cassandra节点?
- r - ggsn::scalebar 没有放在角落里
- c++ - constexpr 静态成员定义
- r - 变异多列 tidyverse
- openssl - 我可以使用 P7S 文件导入 KGpg
- 3d - 自定义对象的 3D 对象检测;数据集创建
- python - 在python中将一列与另一列相除在pandas python 3中给出错误的结果
- python - 大熊猫中的分组,移位和滚动平均值
- angular - 如何修复由于 package.json 仅在生产中丢失而导致的服务错误?
- react-native - 当道具更改时,反应原生图像组件不在本地图像和uri之间切换