C++ 中sort函数的用法

来源:互联网 发布:2017淘宝首页怎么装修 编辑:程序博客网 时间:2024/06/05 20:54

使用此函数只需用#include <algorithm> sort即可使用,语法描述为:

sort(begin,end),表示一个范围,例如:

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);//一定要注意这里是a+20,而不是a+19
 for(i=0;i<20;i++)
 cout<<a[i]<<endl;
 return 0;
}

输出结果将是把数组a按升序排序,说到这里可能就有人会问怎么样用它降序排列呢?这就是下一个讨论的内容.

一种是自己编写一个比较函数来实现,接着调用三个参数的sort:sort(begin,end,compare)就成了。对于list容器,这个方法也适用,把compare作为sort的参数就可以了,即:sort(compare).

1)自己编写compare函数:

bool compare(int a,int b)
{
      return a<b;   //升序排列,如果改为return a>b,则为降序

}

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,compare);
     for(i=0;i<20;i++)
       cout<<a[i]<<endl;
     return 0;
}

在list中有自己的sort函数,直接写好自定义的compare函数,把conpare当为参数即可。

如:按照字符串的大小排序

bool compare(string a, string b)
{
return a < b;
}
void main00()
{
list<string> l;
l.push_back("2017_12_12_0");
l.push_back("2017_12_12_5");
l.push_back("2017_12_12_3");
l.push_back("2017_12_12_9");
l.push_back("2017_12_12_1");

l.sort(compare);
list<string>::iterator it = l.begin();


while (it != l.end())
{
cout << *it << " ";
it++;
}
cout << endl;


原创粉丝点击