比较器中“ =”的含义

我有以下代码尝试根据字符频率以降序对字符串进行排序。

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];}

我会得到堆缓冲区溢出错误。有谁知道那是为什么? 谢谢!

ysjln 回答:比较器中“ =”的含义

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3148434.html

大家都在问