c++中sort()函数的一些用法

1.要使用sort函数只需用#include 即可使用,语法描述为:

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

输出结果将是把数组a按升序排序。

 

2.sort中增加一个参数,可升序可降序。

 

1)自己编写compare函数:

bool compare(int a,int b)
{
      return ab,则为降序

}

2)接着调用三个参数的sort:sort(begin,end,compare)就成了。对于list容器,这个方法也适用,把compare作为sort的参数就可以了,即:sort(compare).

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

3.标准库里已经有现成的了,就在functional里,include进来就行了。functional提供了一堆基于模板的比较函数对象。它们是(看名字就知道意思了):equal_to、not_equal_to、greater、greater_equal、less、less_equal。对于这个问题来说,greater和less就足够了,直接拿过来用:

  • 升序:sort(begin,end,less());
  • 降序:sort(begin,end,greater()).

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<       sort(a,a+20,greater());
      for(i=0;i<20;i++)
          cout<       return 0;
}

你可能感兴趣的:(C++)