c++ - 当 std::sort 中的比较函数总是返回 true 时,为什么会出现运行时错误?

标签 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);

最佳答案

比较函数必须满足Compare的要求概念。其中一项要求是:

If comp(a,b)==true then comp(b,a)==false

你的函数违反了这个要求,所以程序有未定义的行为。

关于c++ - 当 std::sort 中的比较函数总是返回 true 时,为什么会出现运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41488093/

相关文章:

javascript - 在 javascript 中对嵌套对象的对象进行排序(也许使用 lodash?)

sorting - 使用 from/size 进行 Elasticsearch 排序

c++ - 有条件地将函数成员添加到模板类中

C++在循环中创建线程并将它们存储在 vector 中

android - 如何从android NDK中的另一个c++文件读取常量

c++ - 每当我找到 key 时如何增加值? BST

c++ - 如何通过 C++ 连接到 ODBC DSN

c++ sort 会崩溃,而 stable_sort 不会,但两者都不起作用

sorting - Groovy list.sort 按第一个,第二个然后第三个元素

javascript - 对对象中的javascript数组进行排序,维护键