C++set容器-内置类型指定排序
set容器排序
利用访函数,可以改变排序规则
一、set存放内置数据类型
代码如下:
#include <iostream>
using namespace std;
#include <set>class Mycompare {public:bool operator()(int v1, int v2) {return v1 > v2;}
};//set容器排序
void test01() {set<int >s1;s1.insert(10);s1.insert(20);s1.insert(30);s1.insert(50);s1.insert(40);for (set<int >::iterator it = s1.begin(); it != s1.end(); it++) {cout << *it << " ";}cout << endl;//指定排序规则set<int, Mycompare >s2;s2.insert(10);s2.insert(20);s2.insert(30);s2.insert(50);s2.insert(40);for (set<int, Mycompare>::iterator it = s2.begin(); it != s2.end(); it++) {cout << *it << " ";}cout << endl;}int main() {test01();return 0;
}
结果:
二、set存放自定义数据类型
代码如下:
#include <iostream>
using namespace std;
#include <set>
#include <cstring>//set容器排序,存放自定义类型
class Person {public:Person(string name, int age) {this->m_Name = name;this->m_Age = age;}string m_Name;int m_Age;
};class comparePerson {public:bool operator()(const Person &p1, const Person &p2) {//按照年龄 降序return p1.m_Age > p2.m_Age;}
};void test01() {//自定义数据类型 都会指定排序规则set<Person, comparePerson>s;Person p1("刘备", 28);Person p2("关羽", 26);Person p3("张飞", 24);Person p4("马超", 22);Person p5("赵云", 21);s.insert(p1);s.insert(p2);s.insert(p3);s.insert(p4);s.insert(p5);for (set<Person, comparePerson>::iterator it = s.begin(); it != s.end(); it++) {cout << "姓名:" << it->m_Name << " " << "年龄:" << it->m_Age << endl;}
}int main() {test01();return 0;
}
总结:
对于自定义数据类型,set必须指定排序规则才可以插入数据
C++set容器-内置类型指定排序相关推荐
- python中整数类型的表示需加引导符号_Python内置类型及常见问题
python的内置数据类型非常丰富,大致可以分为五类:None.数字类型.序列类型.映射类型和集合类型.下面我将分别对他们进行介绍,做个总结以备以后查看.下面的表列出了各个类别下的具体数据类型.*注: ...
- .net runtime占用cpu_Go服务在容器内CPU使用率异常问题排查手记
导语 本文介绍了公司"云化服务"的大背景下,将一个Go服务迁移至公司的基于K8s+docker的容器云平台,使用火焰图进行性能排查和优化方面的实践.欢迎在留言区进行阅读探讨. 背景 ...
- 菜鸟学习笔记:Java提升篇3(容器3——泛型、排序)
菜鸟学习笔记:Java容器3--泛型.排序 泛型 泛型类 泛型接口 泛型方法 泛型继承 通配符"?" 泛型知识点补充 容器排序 Comparable接口与compareTo方法 C ...
- python内置类型方法_python基础(一)内置类型及方法
python 内置类型主要包含7大类: 数字 序列 映射 文件 类 实例 异常 其中,最常用数据类型为序列 序列 python中包含7种内建序列 列表(list):由方括号构成,用逗号分隔项目: [a ...
- python集合中的元素不能是哪些数据类型_Python内置类型及常见问题
python的内置数据类型非常丰富,大致可以分为五类:None.数字类型.序列类型.映射类型和集合类型.下面我将分别对他们进行介绍,做个总结以备以后查看.下面的表列出了各个类别下的具体数据类型.*注: ...
- python编程语言继承_如何使用Python继承机制(子类化内置类型)
我们知道,Python 中内置有一个 object 类,它是所有内置类型的共同祖先,也是所有没有显式指定父类的类(包括用户自定义的)的共同祖先.因此在实际编程过程中,如果想实现与某个内置类型具有类似行 ...
- Flutter学习之Dart语言基础(内置类型)
Dart支持以下内置类型: numbers strings booleans lists (也称为数组) sets maps runes (用于在字符串中表示Unicode字符) symbols Nu ...
- WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chinahuyong/article/details/47395633 WinForm容器内控件批量 ...
- Docker Review - 使用docker volume数据卷实现容器内的数据与宿主机同步
文章目录 Pre docker volume 基本操作 挂载一个主机目录作为数据卷 Pre 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷 可以在容器 ...
最新文章
- 一文轻松了解Graph Neural Networks
- FOSCommentBundle功能包:与FOSUserBundle集成
- java ResultSet常用操作
- 文本编辑器实现复制、剪切、粘贴、撤销、重做操作
- 在markdown中设置字体颜色以及背景颜色
- python中options设置_如何在AngularJS的ng-options中设置value属性?
- GDCM:gdcm::Validate的测试程序
- .NET Framework总结二
- linux隔行打印文本,详解正则表达式及Linux三大文本处理工具
- Java 8中的5个功能将改变您的编码方式
- skt框架开发设计1
- 10大黑客专用的 Linux 操作系统,你了解哪些?
- ncurses输出修饰:attron(),attroff(),attrset(),attr_get(),attr_,wattr_,chgat(),mvchgat()
- 用java语言编写石头剪刀布获胜法_石头剪刀布Java实现
- 亚马逊CloudFront
- u盘装服务器系统还原c盘失败,云骑士一键重装系统win10还原c盘失败怎么办
- 阿里矢量图标引入方法
- wifi 流量劫持_无线网被流量劫持了怎么弄,WiFi流量被劫持如何处理
- 手动决战3721和雅虎助手
- AutoCAD2012从入门到精通中文视频教程 第20课 移动与旋转(个人收藏)
热门文章
- linux之lsof查看端口占用情况
- 《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?
- linux 查看cpu_作为高级Java,你应该了解的Linux知识
- 王道408数据结构——第一章 绪论
- 博导眼里本科生的科研能力:“他们还在玩泥巴”
- 你所阅读的,决定你是什么样的人
- 【开学季限时免费】下载19880元大数据开发全链路教程(视频+源码)
- 春节特惠活动┃给孩子讲100个科学道理,不如带他做这些趣味实验!
- java输入数据插入if_java编程,从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序插入到数组中。...
- 点击ride界面edit空白_『技术锦囊』如何在SOLIDWORKS界面调用宏程序?