📜  排序函数从大到小c++(1)

📅  最后修改于: 2023-12-03 15:39:49.778000             🧑  作者: Mango

C++中的排序函数从大到小

在编写C++程序时,经常需要对数组或向量等数据结构进行排序。标准C++库中提供了各种排序函数,其中 sort() 函数是最常用的排序函数之一。

sort()函数

sort() 函数的定义如下:

template<class RandomAccessIterator>
void sort (RandomAccessIterator first, RandomAccessIterator last);

template<class RandomAccessIterator, class Compare>
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);

sort() 函数使用快速排序算法对指定范围内的元素进行排序。默认情况下,sort() 函数按升序对元素进行排序。如果要按降序排序,需要使用排序函数的第二个版本,即使用自定义比较函数,下文会介绍。

下面是 sort() 函数按升序排序的示例代码:

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int arr[] = {5, 1, 4, 2, 8};
    int n = sizeof(arr) / sizeof(arr[0]);

    sort(arr, arr+n);

    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";

    return 0;
}

运行结果如下:

1 2 4 5 8
按降序排序

要按降序对元素进行排序,需要使用自定义比较函数。比较函数的返回值决定了原序列中两个元素的顺序。下面是一个按降序排序的例子:

#include <iostream>
#include <algorithm>
using namespace std;

bool cmp(int a, int b)
{
    return a > b;
}

int main()
{
    int arr[] = {5, 1, 4, 2, 8};
    int n = sizeof(arr) / sizeof(arr[0]);

    sort(arr, arr+n, cmp);

    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";

    return 0;
}

运行结果如下:

8 5 4 2 1
总结

sort() 函数是 C++ 中常用的排序函数,使用简单,但是需要注意默认排序顺序是升序的。如果需要按降序排序,需要使用自定义比较函数。