头文件:algorithm

对于(整数/字符)数组进行比較时,可直接通过sort(a,a+n)或sort(a.begin(),a.end())进行排序,默认升序排列,须要高速实现降序时,有三种方案

1.反转升序数组(reserve函数)

2.反向迭代sort(a.rend(),a.rbegin())

3.借助C++库函数,greater<类型>()降序       less<类型>()升序     头文件:functional

当对结构体进行排序时,须要自己写比較函数,曾了解qsort的都知道,C中的qsort排序函数写起来比較麻烦,由于传入的类型是const void * ,函数内部还须要进行强制转换,而sort仅仅需正常传入数据进行比較就可以。

eg:

#include<iostream>
#include<cstdlib>
#include<ctime>
#include<algorithm>
#include<functional>
#include<string>
using namespace std;typedef struct node{int x,y,z;
}node;
node s[10];\
int cmp(node a,node b)
{
if(a.x!=b.x)return a.x<b.x;
else if(a.y!=b.y)return a.y<b.y;
else return a.z<b.z;
}
int main()
{srand((unsigned)time(NULL));for(int i=0;i<10;i++){s[i].x=rand()%5;s[i].y=rand()%10;s[i].z=rand()%20;}for(i=0;i<10;i++){cout<<s[i].x<<"   "<<s[i].y<<"   "<<s[i].z<<"\n";}sort(s,s+10,cmp);cout<<"\n\n";for(i=0;i<10;i++){cout<<s[i].x<<"   "<<s[i].y<<"   "<<s[i].z<<"\n";}return 0;
}

这里进行了结构体的多级排序。

当对字符串数组进行排序时,能够利用C中的strcmp返回自己定义函数结果。

对于String,其能够如同数组一样使用,但不能利用C字符串函数,可使用C++标准库字符串函数。

除了,结构体,字符串数组,sort函数都能够利用C++标准函数实现高速排序,包含pair,vector等类型,未来掌握的更加完好了再继续本文总结。

补:

当我们从0到n-1向数组中输入数据时,排序时sort(a,a+n),当我们须要对当中的部分排序时,仅仅须要sort(a+x,a+n),x>=0(0时是全排序)排序后的结果将以a+x为起点存入。

当我们从1到n向数组中输入数据时,排序时sort(a+1,a+n+1),当我们须要对当中的部分排序时,仅仅须要sort(a+x,a+n+1),x>=1,排序后的结果将以a+x为起点存入。

C++sort函数使用总结相关推荐

  1. C++ algorithm的sort函数总结

    sort函数 sort对给定区间进行排序,支持各种数据类型,迭代器,结构体,自定义排序规则 stable_sort 对给定区间进行稳定排序,且可保证相等元素的原本相对次序在排序后保持不变 partia ...

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

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

  3. C++ STL的sort 函数 以及自定义的比较函数

    没什么特别擅长的内容,先做个小笔记好了.在编程时,使用C++的标准模板库(STL)能节约工作量,增加代码的可读性,能灵活运用无疑会提高编程的效率,俗话说:Write less, create more ...

  4. 不可不知的STL sort函数实现原理

    sort函数一直以来被认为是快排,今天看到一篇文章,感觉自己知道的太少. 建议大家还是要去啃<STL源码剖析>,我也要去读了,先立个flag,后续1-2个月写STL源码剖析上得到的启发. ...

  5. python sort函数返回值_lambda函数与箭头函数在集合内置函数应用中的对照学习

    Python语言中有一个定义轻量级规则的lambda函数,其语法格式为: Lambda 参数列表:返回值表达式 简单的例子如:定义func=lambda x,y:x+y,则调用func(10,20)的 ...

  6. qsort函数和sort函数

      做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错.STL里面有个sort函数,可以直接对数组排序 ...

  7. python sort函数时间复杂度_STL用法及其时间复杂度分析

    STL是C++语言中一个非常实用的代码库,叫做标准模板库,通常我们使用这个头文件即可导入STL.本文立足与C++,但是python其实也是大同小异. set set正如其名,表示的是一个集合,其分为两 ...

  8. sort函数pythonreverse_Python基础 7 ---- Python内置sort和sorted函数

    1 Python对数据的排序有两种方法,一种是容器内置的sort函数,另外一种利用sorted函数 2 对于sort函数我们不再进行讨论,只要研究一下sorted函数 3 sorted函数的原形sor ...

  9. python:数组/列表(remove()函数、append()函数、sort()函数、reverse()函数)

    排序: 1:整理顺序 #冒泡 lista = [5,7,11,19,99,63,3,9,1] list = [] while lista != []:number = 0for i in lista: ...

  10. STL sort()函数详解

    西方有句谚语:不要重复发明轮子! STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已 ...

最新文章

  1. ICLR2020放榜 687篇入选34篇得满分! 且看OpenReview数据图文详解
  2. Cambridge partner
  3. linux切换图片的代码,cacaview – Linux终端下将图片转换ASCII Art代码图案
  4. JDK 14 调试神器了解一下?
  5. 数据结构和算法-003 数组排序 选择排序
  6. Play Framework 的模板引擎
  7. Java项目架构演进和SpringCloud总结
  8. Leetcode每日一题:118 + 119.pascals-triangle I and II(杨辉三角1和2)
  9. mysql 大量close wait_线上大量CLOSE_WAIT原因排查
  10. 计算机网络布线开题报告,网络综合布线开题报告.docx
  11. 如何配置属于自己的代理池
  12. uniapp实现图片压缩:
  13. 计算机语言26个字母,C 语言实例 - 循环输出26个字母
  14. 一英寸芯片大小_Mac mini新款M1芯片详细参数配置规格 尺寸、重量等详细参数
  15. 一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)
  16. 《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.9 逆光拍摄透明体
  17. angular实时监控技术
  18. Linux安装Docker完整教程
  19. Python学习之-分支语句
  20. mode在python中的意思_无法理解.mode()在python中的用法

热门文章

  1. 4-1 面向对象概述
  2. python连接redis sentinel集群
  3. Python学习日记之中文支持
  4. 【转】WCF请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back)
  5. Neville 插值方法
  6. 飘逸的python - 字典合并值相加
  7. [转]关掉myeclipse下的checking for updates
  8. ATL-CComCreator(CComCoClass的使用)
  9. Delphi 2009 之 TCategoryPanelGroup[5]: HeaderStyle
  10. 奥运吉祥物动画宣传片