sort函数,我用总是莫名其妙的错

sort函数,我用总是莫名其妙的错

好像不能和#Include<stdio.h>
1.要使用sort函数只需用#include 即可使用,语法描述为:

sort(begin,end),表示一个范围,例如:

#include<bits/stdc++.h>          //万能头文件
using namespace std;
int main()
 {
  int a[20]={2,4,1,23,5,76,0,43,24,65},i;
  for(i=0;i<20;i++)
   cout<<a[i]<<endl;
  sort(a,a+20);
  for(i=0;i<20;i++)
  cout<<a[i]<<endl;
  return 0;
 }

输出结果将是把数组a按升序排序。

2.sort中增加一个参数,可升序可降序。

1)自己编写compare函数:

bool compare(int a,int b)
{

return a<b; //升序排列,如果改为return a>b,则为降序

}

2)接着调用三个参数的sort:sort(begin,end,compare)就成了。对于list容器,这个方法也适用,把compare作为sort的参数就可以了,即:sort(compare).

#include<bits/stdc++.h>
using namespace std;
bool compare(int a,int b)
       {return a>b;          //函数和语句不一样,函数一定要括起来!
     } //升序排列,如果改为return a>b,则为降序

int main()
 {
      int a[20]={2,4,1,23,5,76,0,43,24,65},i;
      for(i=0;i<20;i++)
        cout<<a[i]<<endl;
      sort(a,a+20,compare);                  //里面的计算太复杂,记住模板即可;
      for(i=0;i<20;i++)
        cout<<a[i]<<endl;
      return 0;
 }

3.标准库里已经有现成的了,就在functional里,include进来就行了。functional提供了一堆基于模板的比较函数对象。它们是(看名字就知道意思了):equal_to、not_equal_to、greater、greater_equal、less、less_equal。对于这个问题来说,greater和less就足够了,直接拿过来用:
升序:sort(begin,end,less());
降序:sort(begin,end,greater()).

int _tmain(int argc, _TCHAR* argv[])
{
      int a[20]={2,4,1,23,5,76,0,43,24,65},i;
      for(i=0;i<20;i++)
          cout<<a[i]<<endl;
      sort(a,a+20,greater<int>());
      for(i=0;i<20;i++)
          cout<<a[i]<<endl;
      return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114904.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月27日 下午5:00
下一篇 2021年9月27日 下午5:00


相关推荐

  • 豆包手机被炒至16000元,技术人员称可提供豆包手机解封教程

    豆包手机被炒至16000元,技术人员称可提供豆包手机解封教程

    2026年3月12日
    3
  • 画用例图_uml活动图怎么画

    画用例图_uml活动图怎么画用例图。组成:系统边界。参与者。用例。关系。参与者:Actor不是人,而是指参与用例时担当的角色。如果一个角色的操作是由另一个角色代理完成的,请建立该角色到另外角色之间的依赖。怎样识别参与者呢? 是谁向系统提供的信息呢. 谁向系统获取信息。 谁操作系统。 系统使用哪些外部资源 系统是否和已经存在的系统交互 系统、子系统或类与外…

    2025年9月26日
    8
  • 不止一个背包的背包问题_背包问题 java

    不止一个背包的背包问题_背包问题 java有 N 个物品和一个容量是 V 的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。每件物品的编号是 i,体积是 vi,价值是 wi,依赖的父节点编号是 pi。物品的下标范围是 1…N。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品个数和背包容量。接下来有 N

    2022年8月9日
    5
  • hadoop提交作业到云端问题解决

    hadoop提交作业到云端问题解决问题描述 当按照 Hadoop 实战上讲述的用 eclipse 提交作业 其实作业是运行在 eclipse 虚拟的一个云环境中 而不是真正提交到 Hadoop 云端运行 在 50030 上也看不到 job 的运行记录 此时的代码如下 packagecom spork hadoop jobutil test importjava io File importjava io IOExc

    2026年3月19日
    2
  • 维度建模——数据仓库初步[通俗易懂]

    维度建模——数据仓库初步[通俗易懂]本文是《维度建模》后续文章的基础。我们首先从宏观层面上考察数据仓库和商业智能(DataWarehousingandBusinessIntelligence,DW/BI)系统。DW/BI系统首先应该仔细考虑的问题是业务需求。《维度建模》系列文章将紧紧抓住业务需求这一要点,逐步深入探讨逻辑设计、物理设计以及采用有关技术和工具的决策等问题。本文将详细考察数据仓库及商业智能的主要目标,辨析DW/…

    2022年5月7日
    50
  • 线段树入门 敌兵布阵

    线段树入门 敌兵布阵

    2021年9月27日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号