我有以下代码尝试根据字符频率以降序对字符串进行排序。
string frequencySort(string s) {
unordered_map<char,int> m{};
for (char c:s) {
if(m.find(c) != m.end()){
m[c]++;
} else {
m[c] = 1;
}
}
sort(s.begin(),s.end(),[&m](char a,char b) { return m[b] < m[a];});
return s;
}
代码工作正常,但是如果我在lambda函数中使用“
[&m](char a,char b) { return m[b] <= m[a];}
我会得到堆缓冲区溢出错误。有谁知道那是为什么? 谢谢!