sort()函数的基本运用

std::sort 是 C++ 标准库中一个非常常用的函数,它用于对序列进行排序。这个函数定义在 <algorithm> 头文件中,可以对数组和容器中的元素进行排序,默认情况下按升序排序。

基本用法

std::sort 的基本用法非常简单,只需要指定要排序的序列的起始和结束迭代器。例如,对一个 std::vector<int> 类型的容器进行排序:

#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v = {4, 1, 3, 5, 2};
    std::sort(v.begin(),v.end());
    return 0;
}

在这个例子中,std::sort(v.begin(), v.end()) 将向量 v 中的元素从小到大排序。

自定义比较函数

如果你想按照不同的标准排序(如降序或根据对象的某个属性),你可以向 std::sort 提供第三个参数,即一个比较函数或者一个函数对象。比如,使用 std::greater<int>() 来按降序排序:

std::sort(v.begin(), v.end(), std::greater<int>());
//greater是模板,所以必须要使用int进行控制

对于自定义类型,比如一个包含整数对的结构体,你可以定义你自己的比较函数:

struct MyPair {
    int first, second;
};

bool compareMyPair(const MyPair& a, const MyPair& b) {
    return a.first < b.first;
}

std::vector<MyPair> vp = {{1, 2}, {3, 1}, {2, 4}};
std::sort(vp.begin(), vp.end(), compareMyPair);

C++ 中的 std::sort 函数不仅可以对容器如 std::vector 进行排序,也可以对普通数组进行排序。对于数列,你可以使用数组或 std::array(如果知道数列的大小并且不会改变)。

使用普通数组排序

#include <algorithm>
#include <iostream>

int main() {
    int arr[] = {10, 5, 15, 20, 2};
    int n = sizeof(arr) / sizeof(arr[0]);

    std::sort(arr, arr + n);

    for (int i = 0; i < n; i++) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;

    return 0;
}

这里使用 std::sort(arr, arr + n) 对数组 arr 进行排序。arr + n 表示数组末尾的位置,因为数组的名称代表数组第一个元素的地址。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值