如何使用C++ STL将Vector降序排序

如何使用C++ STL将Vector降序排序

给定一个Vector,使用C++ STL将该Vector降序排序。

示例:

输入: vec = {1, 45, 54, 71, 76, 12}
输出: {76, 71, 54, 45, 12, 1}

输入: vec = {1, 7, 5, 4, 6, 12}
输出: {12, 7, 6, 5, 4, 1}

方法: 使用STL中提供的sort()函数进行排序。

语法1:

sort(arr, arr + n, greater<T>()); 
// C++程序将Vector按降序排序
//使用C++ STL中的sort()
 
#include <bits/stdc++.h>;
using namespace std;
 
int main()
{
    // 获取Vector
    vector<int> a = { 1, 45, 54, 71, 76, 12 };
 
    // 打印Vector
    cout << "Vector:";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << " ";
    cout << endl;
 
    // 将Vector按降序排序
    sort(a.begin(), a.end(), greater<int>());
 
    // 打印逆序Vector
    cout << "降序排列的Vector:\n";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << " ";
    cout << endl;
 
    return 0;
}  

输出

Vector:1 45 54 71 76 12 
降序排列的Vector:
76 71 54 45 12 1 

时间复杂度: O(N log N)
辅助空间: O(1)

语法2:

sort(arr.rbegin(),arr.rend()); 
// C++程序将Vector按降序排序
//使用C++ STL中的sort()
 
#include <bits/stdc++.h>;
using namespace std;
 
int main()
{
    // 获取Vector
    vector<int> a = { 1, 7, 5, 4, 6, 12 };
 
    // 打印Vector
    cout << "Vector:";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << " ";
    cout << endl;
 
    // 将Vector按降序排序
    sort(a.rbegin(), a.rend());
 
    // 打印逆序Vector
    cout << "降序排列的Vector:\n";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << " ";
    cout << endl;
 
    return 0;
}  

输出

Vector: 1 7 5 4 6 12 
降序排列的Vector:
12 7 6 5 4 1 

时间复杂度: O(N log N),其中N是Vector的大小。
辅助空间: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程