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)

  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值