algorithm
max()、min()、abs()
-
参数必须是两个,如果要三者最大值,可使用
max(x,max(y,z))
-
abs() 只适用int; fabs() 浮点型
swap(x,y)
reverse()
reverse(it,it2)
将数组指针在[it,it2)之间的元素或容器的迭代器进行反转
next_permutation()
给出全排列中的下一排列,用法如下:
int a[10] = {1,2,3};
do{
cout<<a[0]<<a[1]<<a[2];
} while(next_permutation(a,a+3))
fill()
为数组或容器赋相同的值 fill(a,a+5,233)
sort()
-
sort(首元素地址,尾元素地址的下一个地址,比较函数cmp);
-
自定义cmp函数(默认从小到大)
- 基本数据类型
bool cmp(int a,int b) { return a > b; }
- 结构体
bool cmp(fruit f1, fruit f2) { return f1.price > f2.price; }
- vector、string、deuqe 也可使用sort
// cmp函数参照容器保存的数据类型 sort(vi.begin(), vi.end(), cmp); sort(str, str+3);
- 基本数据类型
lower_bound() upper_bound()
-
lower_bound(first,last,val)
在数组或容器的[first,last)第一个值大于等于val元素的位置,数组返回指针;容器返回迭代器 -
lupper_bound(first,last,val)
大于
floor(double x) ceil(double x)
向下取整和向上取整,返回是double
型