使用sort函数运行时错误

时间:2014-05-03 16:36:39

标签: c++

问题是字符串向量中的所有字谜组。 我在C ++中使用sort函数为它编写了代码,但是我遇到了运行时错误而且我不知道出了什么问题。你能帮帮我吗?谢谢!

我的代码:

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

2 个答案:

答案 0 :(得分:1)

anagrams的向量参数的大小大于1时,即使它被声明为返回向量,也不会从函数中返回任何内容。

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

在您对输入进行排序时,您不需要从函数中返回任何内容。

答案 1 :(得分:0)

首先,在函数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);
}