7月20日闲话
学习了一些底层。
起因是这道题,使用了 set 中的一些性质。
set::find
参数:该函数接受一个强制性参数element ,该元素指定要在集合容器中搜索的元素。
返回值:该函数返回一个迭代器,该迭代器指向在集合容器中搜索的元素。如果找不到该元素,则迭代器将指向集合中最后一个元素之后的位置
我之前没想过这玩意能求区间的包含关系。
但这道题里面,只需要重定义一下 < ,find 一下就能找到包含的区间。
struct node{
int l,r;
bool operator <(const node &x)const{
return r<x.l;
}
};
原因是这样的:
set 中判断元素是否相等:
当 A<B和 B<A 都为假时,它们相等。
那么这样定义之后 find 出来的都是与他有交集的区间,又因为包含关系的只可能有一个,判断一下就好了。
妙啊!!!
冲了一天屎山 ds,心态崩了。