sort函数的使用

来源:互联网 发布:人体模型软件 编辑:程序博客网 时间:2024/06/06 12:39
#include <iostream>#include <algorithm>#include <time.h>using namespace std;typedef struct index{int a;int b;}index;bool cmp(index a , index b){if (a.a > b.a ){return true;}elseif ( a.a == b.a  ){if (a.b > b.b ){return true ;}}return false ;}int main(){index c[100];srand( time(0) );int i;for (i = 0 ; i < 100 ; ++i ){c[i].a = rand()%10 ;c[i].b = rand()%10 ;}sort( c , c+100 , cmp );for (i = 0 ; i < 100 ; ++i ){cout<<c[i].a <<"   "<<c[i].b <<endl;}return 0;}

sort函数介

1.包含在头文件algorithm中,使用的话记得打上 #include <algorithm>

2.函数原型:template <class RandomAccessIterator, class StrictWeakOrdering>

                     void sort(RandomAccessIterator first, RandomAccessIterator last, StrictWeakOrdering comp);

                     前两个参数指定了排序的序列,对first到last(不包括last)的元素进行排序,第三个参数指定了如何

                     判断一个元素是否在另一个元素之前如果不写第三个参数,默认为从小到大排序。(有个小技巧,如

                     果懒得重写cmp函数,也可以通过逆序输出实现从大到小排序)

3.sort与qsort的区别:

                     sort是一个改进版的qsort,sort函数优于qsort的一些特点:

                     1.对大数组采取9项取样,更完全的三路划分算法,更细致的对不同数组大小采用不同方法排序。

                     2.Sort中的cmp函数参数可以直接是参与比较的引用类型。

                     3.cmp函数比较时qsort用“-”,而sort用”>”.这也是一个重要的区别。

                     4.sort函数是c++中标准模板库的的函数,在qsort()上已经进行了优化,根据情况的不同可以采用不同

                     的算法,所以较快。在同样的元素较多和同样的比较条件下 ,sort()的执行速度都比qsort()要快。

                     5.sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。

0 0
原创粉丝点击