算法笔记-STL-alogrithm

algorithm

  1. max() min() abs()
    max(x, y) min(x, y)分别返回x, y 中的最大值和最小值, 且参数必须是两个(可以是浮点数)
    max(x, max(y, z)) 三个参数的最大值
    abs(x)返回x的绝对值 x必须是整数 浮点数的绝对值用math头文件下的fabs

  2. swap
    交换 x 和 y 的值

  3. reverse()
    reverse(it1, it2)可以将数组指针在[it1, it2)之间的元素或容器的迭代器在范围内的元素进行反转

  4. next_permutation()
    next_permutation()给出一个序列在全排列中的下一个序列
    在已经到达全排列的最后一个时会返回false,这样会方便退出循环 常用do while形式引其自身也需要输出

  5. fill()
    可以把数组或容器中的某一段区间赋为某个相同的值。和memset不同,这里的赋值可以是数组类型的对应范围中的任意值
    fill(a, a + 5, 233)

  6. sort()
    sort(首元素地址(必填), 尾元素地址的下一个地址(必填), 比较函数(非必填));
    默认从小到大的顺序排序
    比较函数cmp来告诉sort何时要交换元素

bool cmp(int a, int b){
		return a > b;	//可以理解为当a > b时把a放在b前面
struct node{
	int x, y;
}ssd[10];
bool cmp(node a, node b){
	if(a.x != b.x) return a.x > b.x;
	else return a.y < b.y;
}

容器的排序 只有vector, string, deque是可以用sort的。 因为像set、map这种容器是使用红黑树实现的,元素本身有序

  1. lower_bound()和upper_bound()
    需要用在一个有序数组或容器中
    lower_bound(first, last, val)用来寻找在数组或容器的[first, last)范围内的第一个值大于等于val的元素的位置
    如果是数组,则返回该位置的指针;如果是容器,则返回该位置的迭代器
    upper_bound(first, last, val)则是第一个值大于val的元素的位置
    如果只是想获得欲查元素的下标,就可以不使用临时指针,而直接令返回值减去数组首地址即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值