Sort函数(C++)

摘要:
最初的C++有一个内置的排序函数。函数原型是:#include<algorithm>//头文件排序//可以省略cmp参数。如果要按降序排序,则需要定义另一个cmp函数:boolcmp{//按降序排序returna>b;}此外,您可以使用namespacestd对字符串和结构进行排序:#include<iostream>#includeb.y;}返回a.x

原创


C++中内置了sor函数供排序,函数原型为:

#include<algorithm>  //所属头文件
sort(begin,end,cmp);    //其中cmp参数可以省略,省略后默认升序排序

如果要进行降序排序,需要另外定义cmp函数:

bool cmp(int a,int b){    //降序排序
    return a>b;
}

另外还可以对string和结构体进行排序:

#include<iostream>
#include<algorithm>
#include<time.h>
using namespace std;

bool cmp(int a,int b){
    return a>b;
}

struct stru{
    int x;
    int y;
};

bool cmpp(stru a,stru b){
    if(a.x==b.x){    //x坐标同,y坐标降序排序 
        return a.y>b.y;
    }
    return a.x<b.x;    //否则按x坐标升序排序 
}

int main(){
    //int
    int array[10];
    for(int i=0;i<10;i++){
        array[i]=i;
    }
    sort(array,array+10,cmp);
    for(int i=0;i<10;i++){
        cout<<array[i]<<" ";
    }
    cout<<endl;
    //string
    string str="hello,world";
    sort(str.begin(),str.end());
    cout<<str<<endl;
    //结构体
    srand(time(0));
    struct stru node[10];
    for(int i=0;i<10;i++){
        node[i].x=rand()%20;
        node[i].y=rand()%20;
    }
    sort(node,node+10,cmpp);
    for(int i=0;i<10;i++){
        cout<<node[i].x<<" "<<node[i].y<<endl;
    }
    return 0;
}

22:37:40

2018-09-12

免责声明:文章转载自《Sort函数(C++)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇android_menuGit简易使用教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

魔棒工具--RegionGrow算法简介

原地址:http://www.cnblogs.com/easymind223/archive/2012/07/04/2576964.html ps里面的魔棒工具非常好用,是图像处理中非常常用的一个工具,它现在已经是我的c++工具箱中很重要的一员了,我会在以后的时间里把我的工具箱逐渐介绍给大家。 魔棒工具的核心算法是RegionGrow区域成长法,它的概念很...

转:C语言中的typeof关键字

http://blog.csdn.net/wslong/article/details/7728811 typeof关键字是C语言中的一个新扩展。 typeof的参数可以是两种形式:表达式或类型。 下面是使用表达式的的例子:     typeof(x[0](1) 这里假设x是一个函数指针数组,这样就可以得到这个函数返回值的类型了。 如果将typeof用于...

python操作excel向同一sheet循环追加数据

参考文章:https://blog.csdn.net/sdaujz/article/details/102080900?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase&depth_1-utm_source=dis...

c语言中的原子操作

参考文章:https://blog.csdn.net/yikai2009/article/details/8650221 1. 原子操作:原子操作指的是在执行过程中不会被别的代码所中断的操作.。分为 位 和 整型变量 两类原子操作。 typedef struct { volatile int counter; } atomic_t; 2. 原子操作函数 分...

[C++ STL] vector使用详解

一、概述 vector(向量): 是一种序列式容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组(动态数组),它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。 二、定义及初始化 使用之前必须加相应容器的头文件: #...

C# 数据类型

C#的数据类型可以分为3类:数值类型,引用类型,指针类型.指针类型仅在不安全代码中使用.值类型包括简单类型(如字符型,浮点型和整数型等),集合类型和结构型.引用类型包括类类型,接口类型,代表类型和数组类型.值类型和引用类型的不同之处是值类型的变量值直接包含数据,而引用类型的变量把它们的引用存储在对象中.对于引用类型的变量,完全有可能让两个不同的变量引用同一...