1.max(),min()和abs()
max(x,y)和min(x,y)分别返回x,y中的最大值和最小值,且参数必须为两个.abs(x)返回x的绝对值.
2.swap()
swap(x,y)用来交换x和y的值.
3.reverse()
reverse(it,it2)可以将数组指针或容器的迭代器在[it,it2)范围内的元素进行反转,
4.next_permutation()
next_permutation()给出一个序列在全排列中的下一个序列.
举例:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[]={1,2,3,4} ;
do
{
for(int i=0;i<4;i++)
cout<<a[i]<<" ";
cout<<endl;
}while(next_permutation(a,a+4));
return 0;
}
5.fill()
fill()可以把数组或容器中的某一段区间赋给某个相同的值.
6.sort()
sort()函数的使用: sort(首元素地址(必填), 尾元素的下一个地址(必填), 比较函数(非必填))
不写比较函数,则默认对前面给出的区间进行递增排序.
比较函数cmp是布尔类型的函数,对排序的准则做出指导.
7.lower_bound()和upper_bound()
lower_bound()(first,last,val)用来寻找数组或容器的[first,last)区间内第一个值大于等于val的元素的地址.
upper_bound()(first,last,val)用来寻找数组或容器的[first,last)区间内第一个值大于val的元素的地址.
当然,如果只是想获得欲查元素的下标,直接令返回值减去数组首地址即可.
8.*max_element()和*min_element()
*max_element(first,last)和*min_element(first,last)分别用来寻找数组或容器的[first,last)区间内最大和最小的值.
附: 获取随机数
使用 rand 函数可以获取随机数,这里获得的随机数是唯一确定的,而不是变化的,所以需要使用srand来实现.
方法: 加上<ctime>的头文件,并且在主函数开头加上srand(time(0));,即可保证每次运行均出现不同的随机数.
随机数的限制: 如 int a=rand()%100+1 即可保证所得的随机数a为1~100的整数随机数. (即通过取余的基本操作,再加上其它的混合运算对随机数进行限制.)
应用举例:
#include <bits/stdc++.h>
using namespace std;
int main()
{
srand(time(0));
int a[8];
cout<<"使用fill函数将8填满数组 : ";
fill(a,a+8,8);
for(int i=0;i<8;i++)
cout<<a[i]<<" ";
cout<<endl<<"使用rand()函数对数组重赋值 : ";
for(int i=0;i<8;i++)
{
a[i]=rand()%200-100;
cout<<a[i]<<" ";
}
cout<<endl<<"数组中的最大值为 "<<*max_element(a,a+8)<<" 最小值为 "<<*min_element(a,a+8)<<endl;;
cout<<"数组中第一个大于10的元素的下标为"<<upper_bound(a,a+8,10)-a<<endl;
sort(a,a+8) ;
cout<<"数组元素递增排序后为 : ";
for(int i=0;i<8;i++)
cout<<a[i]<<" ";
reverse(a,a+8);
cout<<endl<<"数组元素逆序后呈现为 : ";
for(int i=0;i<8;i++)
cout<<a[i]<<" ";
return 0;
}