小编Sér*_*ros的帖子

尝试对字符串向量进行排序时,C++ 程序崩溃

我正在尝试在 C++ 中对字符串数组进行排序,但收到以下错误消息:

抛出“std::logic_error”实例后调用终止  
  what(): basic_string::_M_construct null 无效

以下程序会导致上一个错误。v有 17 个元素时出现错误,但当元素v较少时一切正常。

有人能指出我有什么问题吗?我正在使用gcc 版本 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)

#include <vector>
#include <string>
#include <algorithm>

using namespace std;

bool comp (string s1, string s2) {
    if (s1.size() < s2.size())
        return false;
    else
        return true;
}

int main () {   
    vector<string> v = { "a", "a", "a", "a",
                         "a", "a", "a", "a",
                         "a", "a", "a", "a",
                         "a", "a", "a", "a",
                         "a" };
    
    sort(v.begin(), v.end(), comp);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ sorting string vector sigabrt

6
推荐指数
1
解决办法
212
查看次数

标签 统计

c++ ×1

sigabrt ×1

sorting ×1

string ×1

vector ×1