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; // 这样写会报错
}

 

posted @ 2020-02-20 00:04  hulian425  阅读(271)  评论(0编辑  收藏  举报