c++sort倒序排序
时间: 2024-07-20 10:01:23 浏览: 84
c++初学者资料勿抄袭
C++标准库中的`std::sort()`函数默认是按照升序对容器中的元素进行排序,如果你想实现倒序排序,可以采用以下几种方式:
1. 自定义比较函数:传递一个函数对象给`sort()`,这个函数对象应该返回一个bool值,表示第一个元素是否应排在第二个元素之前。例如,你可以创建一个函数如`greater<int>()`,它是`std::greater<int>`类型的,用于整数的降序排列。
```cpp
#include <algorithm>
#include <vector>
std::vector<int> vec = {5, 3, 8, 1, 9};
std::sort(vec.begin(), vec.end(), std::greater<int>());
// 现在vec的内容应该是:[9, 8, 5, 3, 1]
```
2. 利用`reverse_iterator`:通过将迭代器范围传递给`sort()`,然后在内部范围前加上`std::reverse_iterator`,可以达到倒序的效果,但这种方法可能会改变原始范围。
```cpp
std::vector<int> vec = {5, 3, 8, 1, 9};
std::sort(vec.rbegin(), vec.rend());
// 注意:这种方法会改变原向量,vec现在也是倒序的
```
阅读全文