首先来说一下lower_bound函数,其功能主要是在已经排好序的数组里查找第一个大于等于x的地址,而upper_bound在已经排好序的数组里查找第一个大于x的地址,参数分别为要在数组查找的首地址,尾地址,查询值,即:lower_bound(a,a+n,x).
而lower_bound(a,a+n,x)-a即得到了第一个大于等于x的值的下标。upper_bound(b,b+n,x)-lower_bound(b,b+n,x)可求出数组a中x出现的次数,注意这里要保证x不是这个数组里最大的,如果这个值有1个则求出来1个,否则求出来的值会少一个。
unique函数为去重函数,其功能对数组去重,用unique(a,a+n)-a可得到去重后数组的大小。去重后可方便离散化,是个不错的技巧。