排序是编程时常遇到的问题,而qsort()和sort()函数显然是为我们提供极大的便利,刚刚接触它们,总结一下我遇到的需要注意的地方吧。
sort()函数的定义包括在algorithm算法头文件(这是c++里面的一个头文件),sort()有两类:
(1)template< class RandomIt >
void sort( RandomIt first, RandomIt last );
(2)template< class RandomIt, class Compare >
void sort( RandomIt first, RandomIt last, Compare comp );
第一类,也就是两个参数的sort()与第二类唯一的不同是它没有自定义比较函数,所以它是默认的升序排的,如果你要降序(即从大到小排),那就引用第二类,自定义一个比较函数:
bool cmp(T a,T b)
{
return a>b; //T为所定义数据类型
}
sort(first,last)
注意:此处的first,last是两个地址,且有如下特性:
一般的,last并非所需排列数组的最后一个元素,而是first+元素个数,例如以下程序段:
int a[4] = {4,3,2,1};
此时对数组a进行排列,命令为:
sort(a,a+4);
http://baike.baidu.com/view/982231.htm