ACM中常用的STL(二)

上一篇文章讲了STL里面常用容器的用法,这一篇文章将主要讲一场常用函数的用法以及后期补充的一些注意事项

函数

next_permutation/prev_permutation(first,last)

转换所给区间内的元素到下一个字典序,成功返回TRUE,不成功返回FALSE(不存在下一个字典序)

sort/stable_sort(first,last)

对区间内的进行排序,前者为稳定排序,后者为不稳定排序

重载operate\<更改排序规则

1
2
3
4
5
6
7
8
9
10
struct node
{
int a,b;
bool operator <(const node & nodeb) const
{
if(a==nodeb.a) //确定优先级a比bda
return b<nodeb.b;
return a<nodeb.a; //优先最小值
}
}s[maxn];

自定义排序函数更改排序规则

1
2
3
4
5
6
bool Cmp(const node &x,const node &y)   //自定义比较函数
{
if(x.a==y.a) //a的优先级大于b
return x.b<y.b;
return x.a<y.a; //最小值优先
}

partial_sort(first,middle,last)

对中间部分元素进行排序,缺省比较函数,可以用于求出最大(或者最小)的k个元素
类似的partial_sort_copy(first,last,d_first,d_last) 对部分元素(根据新的容器的范围)进行排序以后复制值新的容器内

lower_bound/upper_bound(first,last,value)

前者返回大于等于value的第一个数的迭代器,
后者返回大于value的第一个数的迭代器