1 //排序案列
2 //描述:将person自定义数据类型进行排序,Person中有属性 姓名,年龄,身高
3 //排序规则: 按照年龄进行的升序,如果年龄相同按照身高进行降序
4
5 #include<iostream>
6 #include<string>
7 #include<algorithm>
8 #include<list>
9
10 using namespace std;
11
12
13 //person类
14 class Person
15 {
16 public:
17 Person(string name, int age,int height)
18 {
19 this->m_Name = name;
20 this->m_Age = age;
21 this->m_Height = height;
22 }
23
24
25 string m_Name; //姓名
26 int m_Age; //年龄
27 int m_Height; // 身高
28 };
29
30 //指定排序规则
31
32 bool comparePerson(Person & p1, Person& p2)
33 {
34 //按照年龄作为升序
35 if (p1.m_Age == p2.m_Age)
36 {
37 //年龄相同
38 return p1.m_Height > p2.m_Height;
39 }
40 else
41 {
42 return p1.m_Age < p2.m_Age;
43 }
44
45 }
46 void test01()
47 {
48 list<Person>L1;
49
50 //准备数据
51 Person p1("刘备", 35, 175);
52 Person p2("曹操", 45, 180);
53 Person p3("孙权", 40, 170);
54 Person p4("赵云", 35, 190);
55 Person p5("张飞", 25, 160);
56 Person p6("关羽", 35, 200);
57
58
59 //插入数据
60 L1.push_back(p1);
61 L1.push_back(p2);
62 L1.push_back(p3);
63 L1.push_back(p4);
64 L1.push_back(p5);
65 L1.push_back(p6);
66
67 for (list<Person>::iterator it = L1.begin(); it != L1.end(); it++)
68 {
69 cout << "姓名:" << (*it).m_Name << " 年龄:" << it->m_Age << " 身高:" << it->m_Height << endl;
70
71 }
72
73 //排序
74 cout << "-------------------------------------" << endl;
75 cout << "排序后:" << endl;
76
77 L1.sort(comparePerson);
78 for (list<Person>::iterator it = L1.begin(); it != L1.end(); it++)
79 {
80 cout << "姓名:" << (*it).m_Name << " 年龄:" << it->m_Age << " 身高:" << it->m_Height << endl;
81
82 }
83 }
84 int main()
85 {
86
87 test01();
88 }

C++ //排序案列 //描述:将person自定义数据类型进行排序,Person中有属性 姓名,年龄,身高 //排序规则: 按照年龄进行的升序,如果年龄相同按照身高进行降序的更多相关文章

  1. 表格排序tablesort小案列

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  2. Spring MVC的配置文件(XML)的几个经典案列

    1.既然是配置文件版的,那配置文件自然是必不可少,且应该会很复杂,那我们就以一个一个的来慢慢分析这些个经典案列吧! 01.实现Controller /* * 控制器 */ public class M ...

  3. DataGridView使用技巧十三:点击列头实现升序和降序排序

    DataGridView 列有三种排序模式.每一列的排序模式是通过该列的 SortMode 属性指定的,该属性可以设置为以下的 DataGridViewColumnSortMode 枚举值之一. Da ...

  4. laravel-admin列表排序在使用了$grid->model()->latest()后$grid其它加上sortable()可排序的列在排序时不起作用

    laravel-admin这个基于laravel的后台框架,简单易用,$grid的默认排序是主键升序的排列方式,但在使用了`$grid->model()->latest();`自定义默认排 ...

  5. pyinstaller和wordcloud和jieba的使用案列

    一.pyinstaller库 1.简介 pyinstaller库:将脚本程序转变为可执行(.exe)格式的第三方库 注意:需要在.py文件所在目录进行以下命令,图标扩展名是.ico 2.格式: pyi ...

  6. js闭包的作用域以及闭包案列的介绍:

    转载▼ 标签: it   js闭包的作用域以及闭包案列的介绍:   首先我们根据前面的介绍来分析js闭包有什么作用,他会给我们编程带来什么好处? 闭包是为了更方便我们在处理js函数的时候会遇到以下的几 ...

  7. SAMSUNG某型号一千短信成功记录!对比其他软件恢复不成功的案列!

    Hello! 大家好欢迎再次来到Dr.wonde的博客, 下面谈一下今天的案列,今年11月26号收到了一客户寄来的三星S4手机恢复里面短信, 如下图所示,用其他软件恢复以后,数据为零,没有恢复,,这下 ...

  8. php知识案列分享

    今天再跟大家分享一下,以下案列. 使用array_flip函数生成随机数,可以去掉重复值. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 < ...

  9. linux下mysql函数的详细案列

    MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...

  10. 轻量级表格插件Bootstrap Table。拥有强大的支持固定表头、单/复选、排序、分页、搜索及自定义表头等功能。

    Bootstrap Table是轻量级的和功能丰富的以表格的形式显示的数据,支持单选,复选框,排序,分页,显示/隐藏列,固定标题滚动表,响应式设计,Ajax加载JSON数据,点击排序的列,卡片视图等. ...

随机推荐

  1. 【小分享】vm-storage中,计算metric的平均长度

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 表达式如下: sum by (type) (vm_cach ...

  2. 站点用css一键变灰色

    默哀站点变灰色效果看本站即可 css代码如下 <style>html{-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%); ...

  3. 开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6

    新特性介绍 OpenIM每周五发布新版,包括新特性发布,bug修复,同时合并PR,解决issue等 一个完善的IM系统,非常复杂,功能繁多,需求不一,比如对象存储有云端oss,cos,s3,私有化存储 ...

  4. TC插件管理器及在TC中新建文件

    新建文件 Shift+F4可以新建文件,但是会调用内置的编辑器来打开. 在设置中通过修改F4快捷键对应的程序来修改. PS.F4编辑没找到根据扩展名来调用指定程序打开,可以F3中进行补充. NewFi ...

  5. 11.1 C++ STL 应用字典与列表

    C++ STL 标准模板库提供了丰富的容器和算法,这些模板可以灵活组合使用,以满足不同场景下的需求.本章内容将对前面学习的知识进行总结,并重点讲解如何灵活使用STL中的vector和map容器,以及如 ...

  6. C++ STL 标准模板库(容器总结)算法

    C++ 标准模板库STL,是一个使用模板技术实现的通用程序库,该库由容器container,算法algorithm,迭代器iterator,容器和算法之间通过迭代器进行无缝连接,其中所包含的数据结构都 ...

  7. django 处理请求

    本文基于 django runsever 入口 执行 python manage.py runserver 调用 django.core.management.commands.runserver.C ...

  8. Windows安装MongoDB6.0.2

    环境 Windows 10 MongoDB 6.0.2 配置 下载mongodb 下载地址:https://www.mongodb.com/try/download/community 安装 指定目录 ...

  9. 史上最大电池!小米智能家庭屏Pro 8图赏

    今天小米智能家庭屏 Pro 8正式开售,集智能家居中控,智能网关以及娱乐教育三大功能为一体,首发749元. 它是一款全新的智能生态产品中控屏,配备了7500mAh大容量电池以及通用性更好的USB Ty ...

  10. NC16498 [NOIP2014]寻找道路

    题目链接 题目 题目描述 在有向图G中,每条边的长度均为1,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1.路径上的所有点的出边所指向的点都直接或间接与终点连通. 2. ...