C++ 标准库的 sort() 在 <algorithm> 头文件中,只要容器支持随机访问迭代器(如 vector、array、deque)就能用。它最常用的场景是直接对元素做升序排列,但实际工作中很少只满足于默认行为——降序、按成员变量排序、甚至非全序的比较才是日常。
函数原型
sort() 有两个重载:
template<class RandomAccessIterator>
void sort (RandomAccessIterator first, RandomAccessIterator last);
template<class RandomAccessIterator, class Compare>
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
first 和 last 构成左闭右开区间 [first, last)。comp 是可调用对象,当 comp(a, b) 返回 true 时,a 排在 b 前面。使用前记得包含 <algorithm>,函数位于 std 命名空间。
默认升序
对整数数组或容器,默认就是从小到大的升序,底层用 operator< 比较。
int arr[] = {3, 1, 4, 1, 5};
sort(arr, arr + 5);
// arr 变成 1 1 3 4 5
vector 同理:
vector<int> v = {3, 1, 4, 1, 5};
sort(v.begin(), v.end());
// v 变成 1 1 3 4 5

