一、引入
std::sort
是 C++ 标准库中的排序算法函数,通常用于对容器中的元素进行排序。它是 C++ 中常用的算法之一,广泛应用于各种实际开发场景中。通过学习 std::sort
,你将掌握如何高效地对容器进行排序,以及如何通过自定义比较规则实现不同的排序需求。
二、std::sort
基本用法
函数声明
std::sort(iterator first, iterator last);
first
和last
是容器的起始迭代器和结束迭代器,表示排序的区间。- 默认情况下,
std::sort
按升序对容器进行排序(即使用operator<
比较元素)。
三、自定义排序规则:sort函数两种用法
std::sort
可以接受一个第三个参数,指定自定义的比较函数或函数对象(仿函数)。通过自定义比较函数,你可以对容器元素进行不同的排序。
方法一:函数法
bool cmp(int a, int b) {return a > b;
}
std::sort(nums.begin(), nums.end(), cmp);
方法二:Lambda函数法 (推荐)
std::sort(nums.begin(), nums.end(), [](int a, int b) {return a > b; });
注意, [](int a, int b) {return a > b; }这一部分为sort函数的第三个参数,这么写时方便初学者理解,一般都这么排版:
std::sort(nums.begin(), nums.end(), [](int a, int b) {return a > b; // 降序排序
});
如果看不懂Lambda函数,可以参考这篇文章:【C++基础】Lambda 函数 基础知识讲解学习及难点解析-CSDN博客