C++的sort()和qsort()使用

/*
    qsort(首地址, 元素个数, 每个元素占用的字节, 比较函数);
        比较函数:int cmp(const void *e1, const void *e2){ ... } 
            1) 升序:e1 - e2 
            2) 降序:e2 - e1
*/

/*
    sort(首地址, 首地址 + n, 比较函数);
        比较函数:bool cmp(DT e1, DT e2){ ... }
            1) 升序: e1 < e2
            2) 降序: e1 > e2
*/
#include
using namespace std;
int cmp1(const void *elem1, const void *elem2)
{
    return *(int*)elem1 - *(int*)elem2;
}
bool cmp2(int e1, int e2){ return e1 > e2; }
int main()
{
    int a[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
    qsort(a, 10, sizeof(a[0]), cmp1);
    for (int i = 0; i < 10; i++)
        cout << a[i] << " ";
    cout << endl;
    sort(a, a + 10, cmp2);
    for (int i = 0; i < 10; i++)
        cout << a[i] << " ";
    return 0;
}

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