1.要使用sort函数只需用#include <algorithm> 即可使用,语法描述为:
sort(begin,end),表示一个范围,例如:
#include<bits/stdc++.h> //万能头文件
using namespace std;
int main()
{
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i<20;i++)
cout<<a[i]<<endl;
sort(a,a+20);
for(i=0;i<20;i++)
cout<<a[i]<<endl;
return 0;
}
输出结果将是把数组a按升序排序。
2.sort中增加一个参数,可升序可降序。
1)自己编写compare函数:
bool compare(int a,int b)
{
return a<b; //升序排列,如果改为return a>b,则为降序
}
2)接着调用三个参数的sort:sort(begin,end,compare)就成了。对于list容器,这个方法也适用,把compare作为sort的参数就可以了,即:sort(compare).
using namespace std;
bool compare(int a,int b)
{return a>b; //函数和语句不一样,函数一定要括起来!
} //升序排列,如果改为return a>b,则为降序
{
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i<20;i++)
cout<<a[i]<<endl;
sort(a,a+20,compare); //里面的计算太复杂,记住模板即可;
for(i=0;i<20;i++)
cout<<a[i]<<endl;
return 0;
}
- 升序:sort(begin,end,less<data-type>());
- 降序:sort(begin,end,greater<data-type>()).
int _tmain(int argc, _TCHAR* argv[])
{
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i<20;i++)
cout<<a[i]<<endl;
sort(a,a+20,greater<int>());
for(i=0;i<20;i++)
cout<<a[i]<<endl;
return 0;
}
以上三种方式对于我目前的水平来说已足够,以后会更加深入的学习。