小编Abh*_*wal的帖子

C++ std::sort 意外行为(运行时错误)

谁能告诉我为什么 std::sort 显示这种意外的行为。

此代码给出运行时错误

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

inline bool compare(string a, string b){
    return a.size() <= b.size();
}

int main(){

        int n = 100;

        string a = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";

        vector<string>v;
        for(int i=0; i<n; i++){
            v.push_back(a);
        }

        sort(v.begin(), v.end(), compare);

}
Run Code Online (Sandbox Code Playgroud)

但是当我替换return a.size() <= b.size();为时return a.size() < b.size();,它工作得很好。

sorting algorithm runtime-error std c++11

3
推荐指数
1
解决办法
565
查看次数

标签 统计

algorithm ×1

c++11 ×1

runtime-error ×1

sorting ×1

std ×1