038:白给的list排序

这篇博客主要讲述了在OpenJudge平台上遇到的一个编程题目,涉及到C++中使用`sort`函数进行排序的问题。作者指出,当使用`greater<>()`时,虽然在本地编译可以通过,但在OpenJudge上会报错。解决方法是在模板中指定排序元素的类型,如`greater<double>()`。博客提供了一个参考代码示例,展示了如何正确地对双精度浮点数数组进行降序排序。代码已经通过了OpenJudge的样例测试,但作者表示可能存在疏漏,欢迎读者指正。

题目:

http://cxsjsxmooc.openjudge.cn/2021t3springall2/038/

分析:

嗯。。。这道题,如果你认识就白给,不认识的话也就白给

greater<> ()
greater<double> ()

这里面填的比较函数,在本地<>里缺省也能过,但是openjudge上就会编译出错,后来看了下其他博主的题解才发现里面还需要确定一个类型double(要排序的类型)。

参考代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <list>
using namespace std;
int main()
{
    double a[] = {1.2,3.4,9.8,7.3,2.6};
    list<double> lst(a,a+5);
    lst.sort(
// 在此处补充你的代码
    greater<double> ()
    );

    for(list<double>::iterator i  = lst.begin(); i != lst.end(); ++i)
        cout << * i << "," ;
    return 0;
}

注:以上代码虽然通过了OpenJudge的样例测试,但受限于本人水平,如有疏漏,恳请斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值