当std :: sort中的比较函数始终返回true时,为什么会出现运行时错误?

imm*_*iao 2 c++ sorting

当std :: sort中的比较函数始终返回true时,为什么会出现运行时错误?

bool compare(string a, string b)
{
    return true;
}

vector<string> Test;
for (int i = 0; i < 7; i++)
    Test.push_back(string("0"));
sort(Test.begin(), Test.end(), compare);
Run Code Online (Sandbox Code Playgroud)

eer*_*ika 13

比较功能必须符合比较概念的要求.其中一个要求是:

如果comp(a,b)== true则comp(b,a)== false

您的函数违反了此要求,因此程序具有未定义的行为.