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容器-内置类型指定排序相关推荐

  1. python中整数类型的表示需加引导符号_Python内置类型及常见问题

    python的内置数据类型非常丰富,大致可以分为五类:None.数字类型.序列类型.映射类型和集合类型.下面我将分别对他们进行介绍,做个总结以备以后查看.下面的表列出了各个类别下的具体数据类型.*注: ...

  2. .net runtime占用cpu_Go服务在容器内CPU使用率异常问题排查手记

    导语 本文介绍了公司"云化服务"的大背景下,将一个Go服务迁移至公司的基于K8s+docker的容器云平台,使用火焰图进行性能排查和优化方面的实践.欢迎在留言区进行阅读探讨. 背景 ...

  3. 菜鸟学习笔记:Java提升篇3(容器3——泛型、排序)

    菜鸟学习笔记:Java容器3--泛型.排序 泛型 泛型类 泛型接口 泛型方法 泛型继承 通配符"?" 泛型知识点补充 容器排序 Comparable接口与compareTo方法 C ...

  4. python内置类型方法_python基础(一)内置类型及方法

    python 内置类型主要包含7大类: 数字 序列 映射 文件 类 实例 异常 其中,最常用数据类型为序列 序列 python中包含7种内建序列 列表(list):由方括号构成,用逗号分隔项目: [a ...

  5. python集合中的元素不能是哪些数据类型_Python内置类型及常见问题

    python的内置数据类型非常丰富,大致可以分为五类:None.数字类型.序列类型.映射类型和集合类型.下面我将分别对他们进行介绍,做个总结以备以后查看.下面的表列出了各个类别下的具体数据类型.*注: ...

  6. python编程语言继承_如何使用Python继承机制(子类化内置类型)

    我们知道,Python 中内置有一个 object 类,它是所有内置类型的共同祖先,也是所有没有显式指定父类的类(包括用户自定义的)的共同祖先.因此在实际编程过程中,如果想实现与某个内置类型具有类似行 ...

  7. Flutter学习之Dart语言基础(内置类型)

    Dart支持以下内置类型: numbers strings booleans lists (也称为数组) sets maps runes (用于在字符串中表示Unicode字符) symbols Nu ...

  8. WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chinahuyong/article/details/47395633 WinForm容器内控件批量 ...

  9. Docker Review - 使用docker volume数据卷实现容器内的数据与宿主机同步

    文章目录 Pre docker volume 基本操作 挂载一个主机目录作为数据卷 Pre 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷 可以在容器 ...

最新文章

  1. 一文轻松了解Graph Neural Networks
  2. FOSCommentBundle功能包:与FOSUserBundle集成
  3. java ResultSet常用操作
  4. 文本编辑器实现复制、剪切、粘贴、撤销、重做操作
  5. 在markdown中设置字体颜色以及背景颜色
  6. python中options设置_如何在AngularJS的ng-options中设置value属性?
  7. GDCM:gdcm::Validate的测试程序
  8. .NET Framework总结二
  9. linux隔行打印文本,详解正则表达式及Linux三大文本处理工具
  10. Java 8中的5个功能将改变您的编码方式
  11. skt框架开发设计1
  12. 10大黑客专用的 Linux 操作系统,你了解哪些?
  13. ncurses输出修饰:attron(),attroff(),attrset(),attr_get(),attr_,wattr_,chgat(),mvchgat()
  14. 用java语言编写石头剪刀布获胜法_石头剪刀布Java实现
  15. 亚马逊CloudFront
  16. u盘装服务器系统还原c盘失败,云骑士一键重装系统win10还原c盘失败怎么办
  17. 阿里矢量图标引入方法
  18. wifi 流量劫持_无线网被流量劫持了怎么弄,WiFi流量被劫持如何处理
  19. 手动决战3721和雅虎助手
  20. AutoCAD2012从入门到精通中文视频教程 第20课 移动与旋转(个人收藏)

热门文章

  1. linux之lsof查看端口占用情况
  2. 《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?
  3. linux 查看cpu_作为高级Java,你应该了解的Linux知识
  4. 王道408数据结构——第一章 绪论
  5. 博导眼里本科生的科研能力:“他们还在玩泥巴”
  6. 你所阅读的,决定你是什么样的人
  7. 【开学季限时免费】下载19880元大数据开发全链路教程(视频+源码)
  8. 春节特惠活动┃给孩子讲100个科学道理,不如带他做这些趣味实验!
  9. java输入数据插入if_java编程,从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序插入到数组中。...
  10. 点击ride界面edit空白_『技术锦囊』如何在SOLIDWORKS界面调用宏程序?