头文件 | 功能 |
---|---|
<algorithm> | 算法函数 |
<numeric> | 数值算法 |
<functinal> | 函数对象/仿函数 |
分类
填充
函数 | 作用 |
---|---|
fill(beg,end,val) | 将值val赋给[beg,end)范围内的所有元素 |
fill_n(beg,n,val) | 将值val赋给[beg,beg+n)范围内的所有元素 |
generate(beg,end,func) | 连续调用函数func填充[beg,end)范围内的所有元素 |
generate_n(beg,n,func) | 连续调用函数func填充[beg,beg+n)范围内的所有元素 |
- fill()/fill_n()用于填充相同值,generate()/generate_n()用于填充不同值
最大最小
函数 | 作用 |
---|---|
max(a,b) | 返回两个元素中较大的一个 |
max(a,b,cmp) | 使用自定义比较操作cmp,返回两个元素中较大的一个 |
max_element(beg,end) | 返回一个ForwardIterrator,指出[beg,end)中最大的元素 |
max_element(beg,end,cmp) | 使用自定义比较操作cmp,返回一个ForwardItertator,指出[beg,end)中最大的元素 |
min(a,b) | 返回两个元素中较小的一个 |
min(a,b,cmp) | 使用自定义比较操作cmp,返回两个元素中较小的一个 |
min_element(beg,end) | 返回一个ForwardIterrator,指出[beg,end)中最小的元素 |
min_element(beg,end,cmp) | 使用自定义比较操作cmp,返回i一个ForwardIterrator,指出[beg,end)中最小的元素 |
- ForwardIterrator是最大或者最小的指针,需要使用*解引用,或者使用返回值减去数组名可以得到数组的下标。
遍历/变换
函数 | 作用 |
---|---|
for_each(beg,end,func) | 将[beg,end)范围内所有的元素一次调用函数func,返回func。不修改序列中的元素 |
transform(beg,end,res,unary) | 将[beg,end)范围内所有的元素一次调用函数unary,结果放入res中 |
transfoem(beg2,end1,beg2,res,binary) | 将[beg,end)范围内所有元素与[beg2,beg2+end-beg)中所有元素依次调用函数unary,结果放入res中 |
排序算法:提供元素排序策略
1 排序
函数 | 作用 |
---|---|
sort(beg,end) | 默认升序重新排列元素 |
sort(beg,end,comp) | 使用函数comp代替比较操作符执行sort() |
partition(beg,end,pred) | 元素重新排序,使用pred函数,把结果为true的元素放在结果为false的元素之前 |
stable_sort(beg,end) | 与sort()类似,保留相等元素之间的顺序关系 |
stable_sort(beg,end,pred) | 使用pred代替比较操作符执行stable_sort() |
反转/旋转
函数 | 作用 |
---|---|
reverse(beg,end) | 元素重新反序排序 |
reverse_copy(beg,end,res) | 与reverse()类似,结果写入res |
rotate(beg,mid,end) | 元素移到容器末尾,由mid成为容器第一个元素 |
totate_copy(beg,mid,end,res) | 与rotate()类似,结果写入res |
随机
函数 | 作用 |
---|---|
random_shuffle(beg,end) | 元素随机调整次序 |
random_shuffle(beg,end,gen) | 使用函数gen代替随机生成函数执行random_shuffle() |
查找算法:判断容器中是否包含某个值
统计
函数 | 作用 |
---|---|
count(beg,end,val) | 利用==操作符,对[beg,end)的元素与val进行比较,返回相等元素个数 |
count_if(beg,end,pred) | 使用函数pred代替==操作符执行count() |
查找
函数 | 作用 |
---|---|
find(beg,end,val) | 利用==操作符,对[beg,end)的元素与val进行比较。当匹配结束搜索,返回该元素的InputIterrator |
find_if(beg,end,pred) | 使用函数pred代替==操作符执行find |
find_first_of(beg1,end1,beg2,end2) | 在[beg,end)范围内查找[beg2,end2)中任意一个元素的第一次出现。返回该元素的Iterrator |