21xrx.com
2024-12-22 23:38:09 Sunday
登录
文章检索 我的文章 写文章
C++中sort函数的降序排序
2023-07-01 20:04:22 深夜i     --     --
C++ sort函数 降序排序

在C++中,sort()函数是一个非常常用的排序函数,能够对数组或容器中的元素进行排序。默认情况下,sort()函数是按照升序排序的,但是有时候我们需要对元素进行降序排序。

对于降序排序,我们可以利用sort()函数的第三个参数来设置排序规则,即自定义一个比较函数来实现。

具体实现方法是,定义一个比较函数,让它返回第二个参数是否小于第一个参数。在sort()函数中,将这个比较函数作为第三个参数传入,这样sort()函数就会按照这个函数的规则来进行排序,即降序排序。

下面是一个简单的降序排序的例子:


#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

bool cmp(int a, int b)

  return a > b;

int main() {

  vector<int> vec = 6;

  sort(vec.begin(), vec.end(), cmp);

  for (auto i : vec)

    cout << i << " ";

  

  cout << endl;

  return 0;

}

输出结果为:

txt

9 6 5 4 3 2 1 1

可以看到,sort()函数将元素按照降序排序了。

需要注意的是,比较函数应该满足严格弱序关系,即:

- 自反性:对于所有x,都有x≤x。

- 反对称性:对于所有x和y,若x≤y且y≤x,则必有x=y。

- 传递性:对于所有x、y和z,若x≤y且y≤z,则必有x≤z。

- 对称性:对于所有x和y,若x≤y,则y≥x。

如此才能保证排序的正确性。

在实际开发中,很多情况下需要进行降序排序,利用sort()函数的自定义比较函数,可以很方便地实现这个功能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复