当前位置:首页 C++ > 正文

c++vector逆序排序

作者:野牛程序员:2023-07-31 20:44:08 C++阅读 2327

在 C++ 中,要对存储在 vector 中的元素进行逆序排序,可以使用标准库的 std::sort() 算法,并指定一个递减的比较函数或者使用 std::greater 函数对象来进行排序。以下是两种方法的示例:

假设有一个 vector<int> 来进行排序:

  1. 使用递减的比较函数:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {5, 2, 8, 1, 9, 3};

    // 使用递减的比较函数进行排序
    std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
        return a > b;
    });

    // 输出逆序排序后的结果
    std::cout << "逆序排序后的结果: ";
    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}
  1. 使用 std::greater 函数对象:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {5, 2, 8, 1, 9, 3};

    // 使用 std::greater 进行排序
    std::sort(numbers.begin(), numbers.end(), std::greater<int>());

    // 输出逆序排序后的结果
    std::cout << "逆序排序后的结果: ";
    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

无论使用哪种方法,都能得到逆序排序后的结果。

请注意,std::sort() 算法会修改原始的 vector,如果希望保留原始的 vector 不被修改,可以在排序之前创建一个拷贝。例如:

std::vector<int> numbers = {5, 2, 8, 1, 9, 3};
std::vector<int> sortedNumbers = numbers; // 创建拷贝
std::sort(sortedNumbers.begin(), sortedNumbers.end(), std::greater<int>());


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击