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:按值线性查找。