Bootstrap

C++ STL 总结(algorithm.h)

algorithm

max()、min()、abs()

  1. 参数必须是两个,如果要三者最大值,可使用max(x,max(y,z))

  2. 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()

  1. sort(首元素地址,尾元素地址的下一个地址,比较函数cmp);

  2. 自定义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()

  1. lower_bound(first,last,val) 在数组或容器的[first,last)第一个值大于等于val元素的位置,数组返回指针;容器返回迭代器

  2. lupper_bound(first,last,val) 大于

floor(double x) ceil(double x)

向下取整和向上取整,返回是double

double pow(double x,double y)

double sqrt(double x)

double log(double x)

double round(double x)

;