• 【C++】sort函数使用方法


    一.sort函数

    1.sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考虑!

    2.sort函数的模板有三个参数:

    void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);

    (1)第一个参数first:是要排序的数组的起始地址。

    (2)第二个参数last:是结束的地址(最后一个数据的后一个数据的地址)

    (3)第三个参数comp是排序的方法:可以是从升序也可是降序。如果第三个参数不写,则默认的排序方法是从小到大排序。

    3.实例

    sort第三个参数不进行设定默认进行的是从小到大的排序。

    #include<iostream>
    #include<algorithm>
    using namespace std;
    main()
    {
      //sort函数第三个参数采用默认从小到大
      int a[]={45,12,34,77,90,11,2,4,5,55};
      sort(a,a+10);
      for(int i=0;i<10;i++)
      cout<<a[i]<<" ";
    }

    这里可以看到是sort(a,a+10),但是数组a一共只有9个元素,为什么是a+10而不是a+9呢?

    因为sort方法实际上最后一位地址对应的数是不取的,

    而且vector,set,map这些容器的end()取出来的值实际上并不是最后一个值,而end的前一个才是最后一个值!

    需要用prev(xxx.end()),才能取出容器中最后一个元素。

    如果第三个参数进行设定,可以实现从大到小的排序,例如以下例子,自定义第三个参数,实现从大到小排序。

    #include<iostream>
    #include<algorithm>
    using namespace std;
    bool cmp(int a,int b);
    main(){
      //sort函数第三个参数自己定义,实现从大到小
      int a[]={45,12,34,77,90,11,2,4,5,55};
      sort(a,a+10,cmp);
      for(int i=0;i<10;i++)
        cout<<a[i]<<" ";
    }
    //自定义函数
    bool cmp(int a,int b){
      return a>b;
    }

    参考自博客,更详细见:https://www.cnblogs.com/junbaobei/p/10776066.htmlhttps://www.cnblogs.com/zhouxiaosong/p/5557990.html这两篇结合来看更好。

  • 相关阅读:
    perl自定义简易的面向对象的栈与队列类
    java idea实现.java文件编译成class并运行
    git代码管理及提交
    k8s和docker的区别
    pycharm查看代码结构的方法
    ssh 登录的方式
    excel分析数据绘制统计直方图
    linux普通用户使用yum安装nginx,并使用nginx
    iterm2 + virtualbox + centos环境搭建
    python源码安装
  • 原文地址:https://www.cnblogs.com/masbay/p/14028781.html
Copyright © 2020-2023  润新知