运行时使用排序函数出错

run time error using sort function

本文关键字:函数 出错 排序 运行时      更新时间:2023-10-16

问题是将所有字谜组合在一个字符串向量中。我在c++中使用排序函数为它写了代码,但是我得到了运行时错误,我不知道是什么问题。你能帮我一下吗?谢谢你!

我代码:

 bool  comp(string s1, string s2){
    sort(s1.begin(), s1.end());
    sort(s2.begin(), s2.end());
    return (s1<=s2);
    }
    vector<string> anagrams(vector<string> &strs) {
        if(strs.size()==0 || strs.size()==1) return strs;
        sort(strs.begin(), strs.end(), comp);
    }

anagrams的vector参数大于1时,即使它声明返回一个向量,也不会从函数返回任何东西。

这是未定义的行为,可能是崩溃的原因。

在对输入进行排序时不需要从函数返回任何东西

首先,函数comp中应该有s1 < s2而不是s1 <= s2

bool  comp(string s1, string s2){
    sort(s1.begin(), s1.end());
    sort(s2.begin(), s2.end());
    return (s1 < s2);
    }

函数字谜应该定义为

void anagrams(vector<string> &strs) {
    sort(strs.begin(), strs.end(), comp);
}