📅  最后修改于: 2023-12-03 15:39:49.778000             🧑  作者: Mango
在编写C++程序时,经常需要对数组或向量等数据结构进行排序。标准C++库中提供了各种排序函数,其中 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++ 中常用的排序函数,使用简单,但是需要注意默认排序顺序是升序的。如果需要按降序排序,需要使用自定义比较函数。