分享一下最近学习的函数
假设已经定义比较运算的数组x,则:
1,
#include<algorithm>
fill(x+a,x+b,c)无返回值
把x 数组内[a,b) 之间的数初始化为 C(亲测比循环赋值稍慢)
2,
#include<algorithm>
fill_n(x+a,b,c) 无返回值
把x 数组内[a,a+b) 之间的数初始化为 C (亲测比循环赋值稍快)
3,
#include<algorithm>
reverse(x+a,x+b) 无返回值
把x 数组内
[a,b) 的元素整体翻转放置(亲测比循环交换的慢)
4,
#include<algorithm>
unique(x+a,x+b) 返回操作后有效元素的个数
连续的相同的元素只保留一个,其余的移动到数组最后
5,
#include<algorithm>
min_element(x+a,x+b) 返回指针
求x数组中[a,b)区间内的最小值
6,
#include<algorithm>
max_element(x+a,x+b) 返回指针
求x数组中[a,b)区间内的最大值
ps:(合理使用指针基本操作可以输出最值,以及其对应的下标)
7,
#include<algorithm>
nth_element(x+a,x+k,x+b) 无返回值
把数组排序后x[k]的值放在x[k]处,他前面的元素都小于自身,后边的元素都大于自身(相当于执行了一部分快排),总体元素并不保证有序
8,
#include<numeric>
accumulate(x+a,x+b,c) 返回x 类型的值
把x数组中[a,b)区间的累加加上c的值