runtime Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)).

一般是sort(函数非法)

std:sort 使用的是严格弱排序

严格是说在判断的时候会用"<",而不是"<=",弱排序是因为,一旦"<"成立便认为存在"<"关系,返回ture,而忽略了"="关系和">"区别,把它们归结为false。

bool cmp(int x, int y)
{
    LL a = d0[x] - d1[x];
    LL b = d0[y] - d1[y];
    return a <= b; // 这样写会报错
}
原文地址:https://www.cnblogs.com/hulian425/p/12333998.html