C++ 标准库 - <algorithm>

C++ std::sort 对随机访问区间原地排序,默认升序。第三参数可传入函数对象、函数指针或 lambda 指定序。不保证相等元素的相对次序;需要稳定排序时用 std::stable_sort。

原型

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

参数

  • first, last:半开区间,元素须支持移动或交换。
  • comp:可选比较器,返回是否“前者应排在前面”。

返回值

无返回值。区间被重排。

示例

#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    std::vector<int> v = {5, 1, 4, 2, 3};
    std::sort(v.begin(), v.end());
    for (int x : v) {
        std::cout << x << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出:

1 2 3 4 5 

注意事项

要求随机访问迭代器,适用于 vector、deque、内置数组。list 应使用成员 sort。比较器须构成严格弱序,否则行为未定义。

下一页介绍find:按值线性查找。