c++sort函数用法
时间: 2024-06-09 15:04:06 浏览: 192
C++标准库中的`std::sort`函数是用于对容器(如`std::vector`, `std::array`, 或自定义容器)中的元素进行排序的成员函数。它使用快速排序算法(通常有优化版本),对元素进行升序排列。`sort`函数的基本用法如下:
```cpp
template <class RandomIt>
void sort(RandomIt first, RandomIt last);
```
这里的`first`参数是要排序的范围的第一个元素的迭代器,`last`参数是排序范围的结束位置(不包含该元素)。
如果容器中的元素是非可比较的,或者需要自定义排序规则,可以提供一个比较函数或三元操作符作为第二个参数:
```cpp
template <class RandomIt, class Compare>
void sort(RandomIt first, RandomIt last, Compare comp);
```
或者
```cpp
template <class RandomIt>
void sort(RandomIt first, RandomIt last, bool (*pred)(RandomIt, RandomIt));
```
其中,`Compare`是一个对象,或者是满足`bool Compare(const T& a, const T& b)`签名的函数指针,用来指定元素间的比较规则;`pred`是一个返回`bool`值的函数指针,接受两个迭代器作为参数,表示它们所指向的元素之间的关系。
例子:
```cpp
std::vector<int> v = {5, 2, 9, 1, 5, 6};
std::sort(v.begin(), v.end()); // 对vector进行默认升序排序
// 自定义排序
std::sort(v.begin(), v.end(), std::greater<int>()); // 降序排序
// 使用比较函数
bool compare(const int& a, const int& b) { return a > b; }
std::sort(v.begin(), v.end(), compare); // 按照自定义规则排序
```
阅读全文