include<algorithm>的用法,怎么用,什么意思?
就是该头文件包含了一些算法,诸如排序,最大值最小值之类,加上这个头文件,就可以直接用里面的算法
1、若为sort(a,b)两个参数,从小到大的默认排序。
首先给出一个例子:
#include<iostream>
#include<algorithm>
using namespace std;int main()
{
int a[5]={5,4,3,2,1};
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
sort(a,a+5); //从中可以看出,两个参数首尾地址,a为起始,a+5结束。
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0 ;
}
2、若为三个参数,则需要再写一个cmp函数(此函数的名称cmp可变),用于判断是从小到大排序还是从大到小排序。
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int a[10]={8,9,7,3,5,1,2,0,4,6};
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
sort(a,a+10,cmp);
for(int i=0;i<10;i++)
cout<<a[i]<<endl;
return 0;
}
3、如果想依照一个结构体内的一个int型的属性参数进行排序,则见如下例子(从大到小排列)
#include<iosteam>
#include<algorithm>
using namespace std;
struct node
{
int a;
};
bool cmp(node x,node y)
{
if(x.a != y.a)
return (x.a > y.a);
}
void main(void)
{
int i;
node N_t[5];
for(i=0; i<5; i++)
{
cin>>N_t[i].a;
}
sort(N_t, N_t+5, cmp);
for(i=0; i<5; i++)
{
cout<<N_t[i].a;
}
}