需要头文件<algorithm>
语法描述:sort(begin,end,cmp),cmp参数可以没有,如果没有默认非降序排序。
常见的排序算法有快速排序、冒泡排序、归并排序等。STL中sort函数的实现跟STL的版本有关,而往往sort函数是由多种排序算法混合而成的。
1. vector元素为内置数据类型
STL中sort函数的使用方法如下,默认对容器进行从小到大的排序。
#include <vector> // std::vector
#include <algorithm> // std::sort
int main(){
std::vector<int> vi{2, 0, 1, 8, 1, 2, 1, 5};
std::sort(vi.begin(), vi.end()); // 相当于 std::sort(vi.begin(), vi.end(), std::less<int>());
for (int i = 0; i < vi.size(); ++i) {
printf("%d ", vi[i]);
}
printf("n");
// output: 0 1 1 1 2 2 5 8
当然也可以指定对容器进行从大到小的排序:
#include <vector> // std::vector
#include <algorithm> // std::sort
int main(){
std::vector<int> vi{2, 0, 1, 8, 1, 2, 1, 5};
std::sort(vi.begin(), vi.end(), std::greater<int>());
for (int i = 0; i < vi.size(); ++i) {
printf("%d ", vi[i]);
}
printf("n");
// output: 8 5 2 2 1 1 1 0
2. vector元素为用户自定义数据类型
如果vector内的元素为用户自定义类型,并且用户想要按照自定义类型的某些组合特性进行排序。先来看看sort函数的定义:
template <class RandomAccessIterator, class Compare>
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);










