当前位置: 首页 > news >正文

C++征途 --- map/multimap容器

第一部分 --- map基本概念

 1.一个map中的每个key值(索引)是唯一的,我们能够通过这个唯一的key在大量的数据中快速的找到特定的值 ---- 注意这里仅仅是说key值唯一,value值是可以重复的

2.但是在multimap中可以有重复的key值,也可以有重复的value值


第二部份 --- map构造和赋值

 1.由于mao中装的元素是对组,所以我们插值的时候也必须插对组元素,插值方法如下:

这里用了一个比较巧妙的操作:我们是以匿名对组对象以及有参构造函数的形式插值到map容器中的,通过这种方式我们可以在插入元素后就将我们创建的对组自动销毁,这样子即实现了插入操作(所谓的插入操作即将我们传入的对组中的两个数据各拷贝一份后存到容器中)同时也节省了内存空间 


第三部分 --- map的大小和交换


第四部分 --- map插入和删除

1. 注意由于map中的元素只能是对组,所以我们能插入的元素也只有对组

2.插入的几种写法

 推荐用第二种方式来插入元素,然后第三种方式是采用值类型的方法来插入数据

第四种方式一般不用来插值,因为这种插值方式出错概率高,它常用来通过key访问对应的value


第五部分 --- map查找和统计

 此处的count方法统计的是map容器中有几个元素的key值等于我们给定的参数的key值

 注意find方法根据key值找到元素后会返回一个指向这个元素的迭代器


第六部分 --- map容器排序

map容器中的排序是根据元素的key值从小到大排的,那么我们能不能更改这个排序规则呢?

答案是可以的,使用的方法是仿函数法 --- 和set容器一样

操作方法都是一样的

1.创建类;2.重载函数(返回值为bool类型);3.在重载的函数中写排序规则(从大到小,return v1>v2,从小到大:return v1<v2);4.将类名写到容器的模板参数列表中 

自定义类型数据作为key时进行排序的的处理方法也是和set容器一样的,都是需要我们给容器指定一个排序规则


1.这个随机数范围是(0~9999)+10000 2.由于没有用上时间戳,随机数种子不会发生变化,无论生成多少次随机数都是,这些“随机数”都是一样的

 

相关文章:

  • php 手机营业厅业务管理系统
  • VulnHub
  • Java Design Patterns 之 抽象工厂模式
  • java计算机毕业设计基于安卓Android的数字猎头招聘管理APP
  • Flink 流处理API
  • 技术实践|开门见山谈Prometheus
  • npm包版本不一致的问题
  • JVM内存溢出问题排查
  • java计算机毕业设计门诊药品管理系统源码+数据库+系统+lw文档+mybatis+运行部署
  • 真知灼见|客户视图与工作台:金融行业呼叫中心领域驱动设计
  • spring-task进行任务调度
  • npm实现格式化时间---就是实现时间按照要求输出--moment包
  • webdriver API进阶
  • 除自身以外数组的乘积、找到所有数组中消失的数字、两数之和
  • 四川农信分布式核心设计及验证项目成果专家评审会召开
  • 【前端学习】-粗谈选择器
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CSS 专业技巧
  • eclipse的离线汉化
  • Iterator 和 for...of 循环
  • Java读取Properties文件的六种方法
  • JS+CSS实现数字滚动
  • Promise初体验
  • SQLServer插入数据
  • Vue.js源码(2):初探List Rendering
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • windows下使用nginx调试简介
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 06-01 点餐小程序前台界面搭建
  • FaaS 的简单实践
  • Java性能优化之JVM GC(垃圾回收机制)
  • #1015 : KMP算法
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)3D模板阴影原理
  • (转)Google的Objective-C编码规范
  • (转)创业的注意事项
  • .describe() python_Python-Win32com-Excel
  • .md即markdown文件的基本常用编写语法
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET 中的轻量级线程安全
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net下简单快捷的数值高低位切换
  • ?.的用法
  • @PreAuthorize注解
  • [ linux ] linux 命令英文全称及解释
  • [cogs2652]秘术「天文密葬法」
  • [JavaScript]_[初级]_[不使用JQuery原生Ajax提交表单文件并监听进度]
  • [JavaScript]如何讓IE9, IE8, IE7, IE6關閉視窗時不彈出對話訊息
  • [JS]数据类型
  • [JS入门到进阶] 前端开发不能写undefined?这是误区!