c++中的sort用法
时间: 2024-09-07 16:06:38 浏览: 56
C++中的`sort`函数是标准库`algorithm`头文件中定义的一个通用算法,用于对容器中的元素进行排序。其基本用法包括默认的升序排序以及自定义排序规则。
1. 默认升序排序:如果不提供任何参数,`sort`将按照默认的升序方式对容器中的元素进行排序。对于容器中的基本数据类型(如整数、浮点数等),默认升序排序就是按照数值的大小进行排序。
2. 自定义比较函数:如果需要按照自定义的规则进行排序,可以传递一个比较函数或者函数对象作为参数。比如,如果想要降序排序,可以使用`std::greater<T>`作为比较器。
3. 自定义比较函数对象:可以定义一个函数或者函数对象(如lambda表达式),来指定排序的具体规则。
下面是`sort`函数的基本使用示例:
```cpp
#include <algorithm>
#include <vector>
int main() {
// 默认升序排序
std::vector<int> vec = {5, 2, 8, 3, 1};
std::sort(vec.begin(), vec.end());
// 此时vec为 {1, 2, 3, 5, 8}
// 自定义降序排序
std::sort(vec.begin(), vec.end(), std::greater<int>());
// 此时vec为 {8, 5, 3, 2, 1}
// 使用lambda表达式自定义排序规则
std::sort(vec.begin(), vec.end(), [](int a, int b) {
return a % 3 < b % 3; // 按照被3除的余数升序排序
});
return 0;
}
```
`sort`函数的原型是:
```cpp
void sort (RandomAccessIterator first, RandomAccessIterator last);
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
```
- `first` 和 `last` 是迭代器,指向需要排序的容器的起始和结束位置。
- `comp` 是一个比较函数,用来比较两个元素的大小。如果没有提供`comp`,则按照`operator<`进行比较。
阅读全文