C++提供了qsort函数对数据进行快读排序,也提供了sort函数对vector和list进行排序,比较函数和函数类型的参数是排序函数的关键。

#include<iostream>

#include<cstdlib>

#include<algorithm>

#include<vector>

#include<list>

#include<iterator>


using namespace std;


int QsCmp(const void *a, const void *b)

{

return *(int *)a-*(int *)b;

}


int SCmp(int a, int b)

{

return a > b;

}


int main()

{

vector<int> m;

list<int> l;

list<int>::iterator it;

int a;

for (int i = 0; i < 8; i++)

{

cin >> a;

m.push_back(a);

l.push_back(a);

}

/*

快速排序函数调用,第一个参数为指针首地址,第二个参数为排序数组大小,第三个参数为类型所占的字节数,最后一个为比较函数

*/

qsort(&m[0],8,sizeof(int),QsCmp);

for (int i = 0; i < 8; i++)

cout << m[i] << endl;

/*

向量排序

*/

sort(m.begin(),m.end(), SCmp);

for (int i = 0; i < 8; i++)

cout << m[i] << endl;

/*

list排序

*/

l.sort(SCmp);

for (it = l.begin(); it!=l.end(); it++)

cout << *it << endl;

system("pause");

return 0;

}