STL算法 排序
来源:互联网 发布:c语言入门算法 编辑:程序博客网 时间:2024/05/21 06:31
要对对象成员排序,一种方法是重载比较运算符,另一种方法是自己写比较函数
#include"stdafx.h"#include<iostream>#include"math.h"#include<vector>#include<string>#include <algorithm>using namespace std;class stu{public: string str;int num1;int num2;stu(string a, int b, int c) :str(a), num1(b), num2(c) {}bool operator < (const stu &m)const {return num1 < m.num1;}};bool less_second(const stu & m1, const stu & m2) {return m1.num2 < m2.num2;}vector<stu> input;void output(vector<stu> &output){for (auto i : input){cout << i.str << " " << i.num1 << " " << i.num2 << endl;}}int main(){stu *s1 = new stu("a", 3, 9);input.push_back(*s1);stu *s2 = new stu("b", 12, 12);input.push_back(*s2);stu *s3 = new stu("c", 30, 4);input.push_back(*s3);stu *s4= new stu("d", 5, 7);input.push_back(*s4);stu *s5 = new stu("e", 9, 2);input.push_back(*s5);cout << "排序前:........................" << endl;output(input);cout << "第一种方式排序:........................" << endl;sort(input.begin(),input.end());output(input);cout << "第二种方式排序:........................" << endl;sort(input.begin(), input.end(),less_second);output(input);cout << "部分排序:........................" << endl;partial_sort(input.begin(), input.begin() + 3, input.end(),less_second);output(input);cout << "找出第几小:........................" << endl;nth_element(input.begin(), input.begin() + 3, input.end());//直接数第几个即可output(input);int a;cin >> a;return 0;}输出:
另外还有partition和stable_partition,主要用于分类
性能排序(效率由高到低):
- partion
- stable_partition
- nth_element
- partial_sort
- sort
- stable_sort
0 0
- STL排序算法
- STL排序算法
- STL 排序算法
- STL之排序算法
- STl中的排序算法
- STL 排序算法
- STL算法(Algorithms):排序
- STL - sort排序算法
- STL排序算法
- STL中的排序算法
- STl中的排序算法
- STl中的排序算法
- STL中排序算法
- STL算法 ------ 局部排序
- STL排序算法
- STl中的排序算法
- STl中的排序算法
- STL算法之排序
- 【Leetcode】Coin Change
- 【Leetcode】Count of Smaller Numbers After Self
- 二叉树的操作 深度广度遍历,二叉树递归和非递归遍历
- 个人感悟
- 安卓初识基本控件_Spinner
- STL算法 排序
- 聚类算法分析
- KaLi Linux Rolling 2016 学习笔记
- 推荐算法:基于内容的推荐_3: 用户特征
- 人脸识别(通过照片库区别人物)
- VirtualBox 安装 Centos 7 笔记
- java之内部类(InnerClass)----非静态内部类、静态内部类、局部内部类、匿名内部类
- Java注解
- Linux(CentOS7)设置Tomcat开机启动与内存设置