stl常用区间函数:
注意:c++区间参数中所有区间均为左闭右开[a,a+n)
1.排序:sort(a,a+n)
2.随机化:random_shuffle(a,a+n)
3.下一个排列:next_permutation(a,a+n)
如:112的下一个排列为121。当没有下一个时,返回false
4.前一个排列:prev_permutation(a,a+n)
如:121的下一个排列为112。当没有前一个时,返回false
5.去重:newsize=unique(a,a+n)-a
将相邻的重复元素移到最后,并返回第一个无效元素(即第一个重复元素)的位置
如:a数组原来为1,1,2,2,3 用了上面的操作后变为1,2,3,x,x,newsize=3
6. 二分找下界:id=lower_bound(a,a+n,x)-a
返回第一个>=x的位置
7.二分找上界:id=lower_bound(a,a+n,x)-a
返回第一个>x的位置
示范代码
代码
#include<bits/stdc++.h>
using namespace std;
int a[]={
1,1,2,2,3,4,7