原创


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[];
for(int i=;i<;i++){
array[i]=i;
}
sort(array,array+,cmp);
for(int i=;i<;i++){
cout<<array[i]<<" ";
}
cout<<endl;
//string
string str="hello,world";
sort(str.begin(),str.end());
cout<<str<<endl;
//结构体
srand(time());
struct stru node[];
for(int i=;i<;i++){
node[i].x=rand()%;
node[i].y=rand()%;
}
sort(node,node+,cmpp);
for(int i=;i<;i++){
cout<<node[i].x<<" "<<node[i].y<<endl;
}
return ;
}

22:37:40

2018-09-12

Sort函数(C++)的更多相关文章

  1. STL sort 函数实现详解

    作者:fengcc 原创作品 转载请注明出处 前几天阿里电话一面,被问到STL中sort函数的实现.以前没有仔细探究过,听人说是快速排序,于是回答说用快速排序实现的,但听电话另一端面试官的声音,感觉不 ...

  2. 神奇的sort()函数

    今天来谈一谈sort()函数,sort() 方法用于对数组的元素进行排序,用法为arrayObject.sort(sortby):括号中的为可选参数,准确来说应该是一个函数,这个函数用来规定排序方法, ...

  3. qsort函数、sort函数【转】

    http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链 ...

  4. C中的qsort函数和C++中的sort函数的理解与使用

    一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...

  5. python 中的sort 和java中的Collections.sort()函数的使用

    x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...

  6. sort函数用法

    原文链接:http://blog.csdn.net/csust_acm/article/details/7326418 sort函数的用法 做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己 ...

  7. Perl Sort函数用法总结和使用实例

    一) sort函数用法 sort LISTsort BLOCK LISTsort SUBNAME LIST sort的用法有如上3种形式.它对LIST进行排序,并返回排序后的列表.假如忽略了SUBNA ...

  8. C++ sort函数

    (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于 ...

  9. 使用STL库sort函数对vector进行排序

    使用STL库sort函数对vector进行排序,vector的内容为对象的指针,而不是对象. 代码如下 #include <stdio.h> #include <vector> ...

  10. C++ algorithm 里的sort函数应用

    MSDN中的定义: template<class RanIt>    void sort(RanIt first, RanIt last); //--> 1)template< ...

随机推荐

  1. 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对

    报错:当前标识(NT AUTHORITY\NETWORK SERVICE)没有对C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP. ...

  2. Git的其他一些使用案例

    按照格式输出提交号 作者 时间 git log --pretty=format:"%h %an %cd" --date=iso 获取所有远程的tag和他的commit sha1 g ...

  3. shell编程中用户输入处理(shell 04)

    shell编程中用户输入处理1.命令行参数2.脚本运行时获取输入 命令行参数 通过空格来进行分割的位置参数 :$+position $0,$1,$2 ....$0 :程序名$1,$2,$3 ... $ ...

  4. springboot成神之——发送邮件

    本文介绍如何用spring发送邮件 目录结构 依赖 MailConfig TestController 测试 本文介绍如何用spring发送邮件 目录结构 依赖 <dependency> ...

  5. Python Twisted系列教程12:改进诗歌下载服务器

    作者:dave@http://krondo.com/a-poetry-transformation-server/  译者:杨晓伟(采用意译) 你可以从这里从头阅读这个系列. 新的服务器实现 这里我们 ...

  6. Vue 简单的总结一

    let 变量 1. 局部作用域 2. 不会存在变量提升 3. 变量不能重复声明 const 变量 1. 局部作用域 2. 不会存在变量提升 3. 变量不能重复声明 4. 只能声明常量,不可变得量 th ...

  7. 使用Handler类来更新UI

    在android里面,我们经常要上网获取一些数据,然后更新UI,但获取数据是要时间的,如果在主线程里面直接使用获取数据的代码的话.整个activity就会卡在那,直至你获取到数据更新完UI才会加载完成 ...

  8. [原创]Java使用反射及自定义注解实现对象差异性比较

    Java项目C中 有一处逻辑,对于资源数据(类型为ResourceItem,拥有int/double/boolean/String类型数十个字段),需要比对资源数据每次变更的差异,并描述出变更情况.并 ...

  9. c++builder 编译独立运行

    cb6 XE7 Project>Options> Packages>Runtime Packages>Link with runtime packags勾去掉.c++ Link ...

  10. (转)CSS布局-负边距-margin

    css中的负边距(negative margin)是布局中的一个常用技巧,只要运用得合理常常会有意想不到的效果.很多特殊的css布局方法都依赖于负边距,所以掌握它的用法对于前端的同学来说,那是必须的. ...