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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 各大型邮箱smtp服务器及端口收集

    各大型邮箱smtp服务器及端口收集

    2021年9月21日
    99
  • 群体智能优化算法之总结

    群体智能优化算法之总结获取更多资讯,赶快关注上面的公众号吧!第十六章群体智能优化算法总结总结一下最近一段时间关于群体智能优化算法的文章,这方面的文章目前一共发表了13篇,涉及粒子群(鸟)、人工蜂群、蜘蛛猴、蚁群、布谷鸟、萤火虫群、萤火虫、蝙蝠、鱼群、蟑螂、猫群、细菌觅食和烟花算法,虽然这都是些五花八门的小东西,但也不是无规律可循,这里需要注意的是,群体智能一般是指具有生命的种群(鸟、鱼等),但也有像烟花这样的无…

    2022年5月23日
    32
  • target host is null

    target host is null在接口调用的时候出现targethostisnull的异常原因是因为接口地址没有加http://

    2022年10月19日
    0
  • 机器学习中【回归算法】详解

    机器学习中【回归算法】详解关注微信公众号【Microstrong】,我写过四年Android代码,了解前端、熟悉后台,现在研究方向是机器学习、深度学习!一起来学习,一起来进步,一起来交流吧!本文同步更新在我的微信公众号里,地址:https://mp.weixin.qq.com/s?__biz=MzI5NDMzMjY1MA==&amp;mid=2247483935&amp;idx=1&amp;sn=5e1c55c76…

    2022年8月21日
    3
  • 单例模式的要点(写出一个单例模式)

    目录一、单例模式的定义和应用场景(一)定义及基本要点(二)应用场景二、饿汉式单例模式(一)基本代码展示分析(二)基本分析和建议三、懒汉式单例模式(双重检查锁)(一)基本代码展示分析(二)基本分析和建议四、静态内部类实现单例模式(一)基本代码展示分析(二)基本分析和建议五、注册式单例模式(一)枚举式单例模式代码及分析:(EffectiveJa…

    2022年4月18日
    129
  • Eclipse-环境配置-jdk1.8

    Eclipse-环境配置-jdk1.8Eclipse-环境配置-jdk1.8进入javaSE官网,按如下下载jdk1.8jdk下载位置。按照安装要求进行下载,在此是按照以下进行下载。下载后点击安装,本机是安装在C:\Java\jdk1.8.0_144位置。然后配置环境参数:3、JDK环境变量配置a、新建JAVA_HOME环境变量,JAVA_HOME=C:\Java\jdk1.8.0_144b、修改…

    2022年6月20日
    88

发表回复

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

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