

请问sort的这一行怎么理解?
bool cmp(const Query& x, const Query& y){
int a = get_block(x.l);int b = get_block(y.l);if(a != b)return a < b;return x.r < y.r;}
就是cmp必须满足
- 非自反性,即自己和自己比较永远返回假
- 不对称性,即如果a和b比较返回真,那么把它们换过来比较一定是假
- 传递性,即如果a和b比较返回真,b和c比较返回真,那么a和c比较也是真
等价关系是由cmp推导出来的,equiv(a, b) = !cmp(a, b) && !cmp(b, a)
<和>是满足上面三条属性
所以排序时,需要定义<或>比较函数来决定是按递增还是递减顺序来排序。