一、sort() 函数概述
在 C++ 标准库中,sort() 是一个非常实用且高效的工具,定义于 <algorithm> 头文件中。它专门负责对容器(如 vector、array 等)或普通数组中的元素进行排序。无论是处理简单的整数数组,还是复杂的自定义结构体,sort() 都能轻松应对,将杂乱的数据按照期望的顺序排列,为后续的数据处理和分析提供便利。
二、基本语法与使用准备
2.1 函数原型
sort() 主要有两种常见原型,以适应不同的排序需求。
第一种是基础版本:
template<class RandomAccessIterator>
void sort (RandomAccessIterator first, RandomAccessIterator last);
其中 first 和 last 都是随机访问迭代器。first 指向要排序范围的起始位置,last 指向结束位置的下一个位置,即排序范围是左闭右开区间 [first, last)。例如对 vector<int> vec 整体排序:
sort(vec.begin(), vec.end());
第二种增加了比较函数参数,用于自定义排序规则:
template<class RandomAccessIterator, class Compare>
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
这里的 comp 是一个可调用对象(函数、函数指针或函数对象),定义了元素间的比较方式。当 comp(a, b) 返回 true 时,表示 a 应该排在 b 前面。
2.2 头文件与命名空间
使用前需包含 <algorithm> 头文件。由于 sort() 位于 std 命名空间中,使用时需添加 using namespace std; 或显式指定 std::。
三、常用排序方法
3.1 默认排序(升序)
默认行为是对元素进行升序排序,直观且能满足大多数常见需求。
数组示例:
#include <iostream>
std;
{
arr[] = {, , , , };
(arr, arr + );
cout << ;
( i = ; i < ; ++i) {
cout << arr[i] << ;
}
cout << endl;
;
}

