首页 > C++ algorithm的sort函数总结

C++ algorithm的sort函数总结

sort函数

  • sort对给定区间进行排序,支持各种数据类型,迭代器,结构体,自定义排序规则
  • stable_sort 对给定区间进行稳定排序,且可保证相等元素的原本相对次序在排序后保持不变
  • partial_sort 对给定区间部分元素排序
  • partial_sort_copy 对给定区间部分元素排序并复制
  • partition 使得符合某个条件的元素放在前面
  • stable_partition 相对稳定的使得符合某个条件的元素放在前面

sort函数使用

  • 对int型排序,默认是升序
    #include 
    #include 
    #include 
    #include using namespace std;
    int main(){ vector<int> a;int tmp;for (int i = 0;i < 3; ++i) { scanf("%d",&tmp);a.push_back(tmp);}sort(a.begin(),a.end());for(int i = 0;i < a.size();++i) { cout << a[i] << " ";}return 0;
    }
    
  • 对string型 按字典排序,默认是升序
    #include 
    #include 
    #include 
    #include using namespace std;
    int main(){ vector<string> s;string s1;for (int i = 0; i< 3; ++i) { cin>>s1;s.push_back(s1);}sort(s.begin(),s.end());for(int i = 0;i < s.size();++i) { cout << s[i] << " ";}return 0;
    }
    
  • 对int型指定排序规则
    #include 
    #include 
    #include 
    #include using namespace std;/*降序规则*/
    bool cmp(int a, int b) { return a>b;
    }
    int main(){ vector<int> a;int tmp;for (int i = 0;i < 3; ++i) { scanf("%d",&tmp);a.push_back(tmp);}sort(a.begin(),a.end(),cmp);for(int i = 0;i < a.size();++i) { cout << a[i] << " ";}return 0;
    }
    
  • 对结构体进行排序,并制定排序规则
    #include 
    #include 
    #include 
    #include using namespace std;
    struct Data { int a;int b;
    };
    /*构造结构体排序规则*/
    bool cmp(Data da1, Data da2) {  if (da1.a == da2.a)return da1.b > da2.b;return da1.a > da2.a;
    }int main(){ vector<Data> stru;Data da1;for (int i = 0;i < 3; ++i) { scanf("%d %d",&da1.a, &da1.b);stru.push_back(da1);}sort(stru.begin(),stru.end(),cmp);for (int i =0; i < stru.size(); ++i)cout << stru[i].a << " " << stru[i].b << endl;return 0;
    }
    

更多相关:

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...

  • 关于点云的分割算是我想做的机械臂抓取中十分重要的俄一部分,所以首先学习如果使用点云库处理我用kinect获取的点云的数据,本例程也是我自己慢慢修改程序并结合官方API 的解说实现的,其中有很多细节如果直接更改源程序,可能会因为数据类型,或者头文件等各种原因编译不过,会导致我们比较难得找出其中的错误,首先我们看一下我自己设定的一个场景,...

  • /* 使用正态分布变换进行配准的实验 。其中room_scan1.pcd room_scan2.pcd这些点云包含同一房间360不同视角的扫描数据 */ #include #include #include #include

  • #include #include #include #include ...

  • #include #include #include #include #include #include...

  • #include #include #include #include int main (int argc,...

  • 一、 介绍sort命令是用来对文字内容(文档)排序使用的。同时也可以排序去重、指定字段排序,按照月份排序、按照数字排序,检查文件是否有序等等。默认情况是按照字典序排序以后标准输出到屏幕上,但是该命令不会修改原来的文档内容。sort命令通常和uniq命令以及wc命令一起使用。二、 用法sort [OPTION]... [FILE]......

  • arr.sort((prev, next) => next.排序字段 - prev.排序字段);//从大到小降序(会改变原数组)arr.sort((prev, next) => prev.排序字段 - next.排序字段);//从小到大升序(会改变原数组)...

  • 以下为我们经常用到的十大典型排序算法导图,很多设计以及优化的思想值得去参考学习 因为代码较多,所以都添加到对应的实现注释中了,相关代码可以从Mind-mapping获取xmind源文件 参考文档: 基数排序 堆排序 希尔排序 https://blog.csdn.net/real_lisa/article/details/826854...

  • 对文本操作进行排序,以行为单位,依次根据ascii值进行比较,默认的排序方式为升序 sort [-bcfMnrtk][源文件][-o 输出文件]补充说明:sort可针对文本文件的内容,以行为单位来排序。 参  数:-b 忽略每行前面开始出的空格字符。-c 检查文件是否已经按照顺序排序。-f 排序时,忽略大小...

  • 下面链接中是我用jQuery的扩展来实现的表格分页和排序,使用这个扩展必须加上表头和标签,因为我是 通过来进行分页的,要是不加thead,那么表头也要作为分页计算时的一个行了。 下载最新代码和示例:jqueryPaging.rar 使用方法如下: