algorithm头文件下的常用函数

目录

  • max()和min()
  • swap()
  • reverse()
  • next_permutation()
  • fill()
  • sort()
  • lower_bound()和upper_bounnd()

max()和min()

max(x,y) 返回x,y中的最大值。
min(x,y) 返回x,y中的最小值。
algorithm头文件下的常用函数_第1张图片

swap()

swap(x,y)用来交换两个数的值。
algorithm头文件下的常用函数_第2张图片

reverse()

reverse(it,it2)可以将数组指针在 [ it, it2)之间的元素或容器的迭代器在 [ it ,it2)范围内的元素进行反转。
algorithm头文件下的常用函数_第3张图片
algorithm头文件下的常用函数_第4张图片

next_permutation()

next_permutation()给出一个序列在全排列中的下一个序列。

例如  n==3时的全排列为
123
132
213
231
312
321
这样231的下一个序列就是312.

algorithm头文件下的常用函数_第5张图片

fill()

fill()可以把数组或容器中的某一段区间赋为某个相同的值。和memset不同,
这里的赋值可以是数组类型对应范围中的任意值。
algorithm头文件下的常用函数_第6张图片

sort()

sort详解

lower_bound()和upper_bounnd()

lower_bound()和upper_lound()需要用在一个有序数组或容器中。

lower_bound(first,last,val)用来寻找在数组或容器的[first,last)范围内第一个值大于等于val的元素的位置,如果是数组,则返回该位置的指针;如果是容器,则返回该位置的迭代器。
upper_bound(first,last,val)用来寻找在数组或容器的[first,last)范围内第一个值大于val的元素的位置,如果是数组,则返回该位置的指针;如果是容器则返回该位置的迭代器。
显然,如果数组或容器中没有需要寻找的元素,则lower_bound()和upper_bound()均返回
可以插入该元素的位置的指针或迭代器(即假设存在该元素时,该元素应当在的位置)。
lower_bound()和upper_bound()的复杂度为 O( log(last-first) )。
algorithm头文件下的常用函数_第7张图片
如果只是想要获得欲查元素的下标,就可以不使用临时指针,而直接令返回值
减去首地址即可。

algorithm头文件下的常用函数_第8张图片

你可能感兴趣的:(算法,算法)