C++基础(14)——STL(set、pair、map)

news2024/10/7 16:26:29

前言

本文主要介绍C++中STL中的set、pair和map容器

7.8:set、multiset容器

7.8.1:set容器基本概念、构造函数和赋值(=、insert)

set容器中所有元素都会在插入的时候自动排序

set和multiset的区别

set不允许有重复的元素;multiset允许容器中有重复的元素

set的迭代器也是不支持随机访问的,只能双向++或--

7.8.2:set的大小和交换操作(size、empty、swap)

7.8.3:set的插入和删除(insert、erase)

7.8.4:set查找和统计(find、count)

7.8.5:set和multiset的区别

set中不存在相同的值,multiset中可以存在相同的值

set使用insert之后会返回一个pair,multiset使用insert之后会返回一个iterator

set下的insert原型

multiset下的insert原型

7.8.6:pair对组创建(有参构造、make_pair)

成对出现的数据,利用对组可以返回两个数据,使用.first和.second来返回第一参数和第二参数的值

7.8.7:使用仿函数对set进行排序,改变默认容器sort的排序规则

set实现倒序输出

如果要对自定义数据类型实现倒序输出,对自定义的数据用集合容器装入的话,要自己确定排序规则,重写仿函数

没有办法在Person类中直接重写operator(),要重新写一个类,然后重写这个类的operator(),参数就是Person的对象

7.9:map/multimap容器

7.9.1:map的基本概念

1:map中的所有元素都是pair

2:pair中第一个元素为key(键值),第二个元素是value(实值)

3:所有元素都会根据元素的键值自动排序

4:map中不允许有重复的key值出现,multimap允许容器中有重复的key出现

基本构造函数

7.9.2:map容器的大小和交换(size、swap、empty)

7.9.3:map容器中元素的插入和删除(insert、erase、clear)

7.9.4:map的查找和统计(find、count)

7.9.5:map容器使用仿函数改变默认排序

map容器中装自定义类型数据,使用仿函数改变默认排序方式

总结

以上就是本文的全部内容,非常感谢你能看到这

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

i5/i7该选谁?差距大不大?i5-13490F、i7-13790F深度测试

一、i5、i7还是性能差不多吗? 自从2017年Zen架构发布开始,Intel与AMD在CPU性能竞争上就进入了激烈的内卷。随着双方在产品竞争上日趋白热化,同世代不同档次CPU产品的性能差距被明显拉大。 那么,过去那种“i5、i7性能差不多&#x…

self-attention(transformer)

自注意力机制 在传统的CNN中,都是对感受野内部的事情进行关联后理解。 感受野实际上关乎了模型对全局信息的理解。 而本质上,感受野是一种特殊的注意力机制,也就是说感受野是一种受限的、具有特定参数的注意力。 之前的内容如DANet&#…

基于webpack开发vue-cli

一、vue-cli开发 1. 项目整体目录 2. package.json {"name": "vue-cli","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "npm …

机器学习常识 23: U-Net

摘要: U-Net 集编码-解码于一体, 是一种常见的网络架构. 图 1. U-Net 例. 如图 1 所示, U-Net 就是 U 形状的网络, 前半部分 (左边) 进行编码, 后半部分 (右边) 进行解码. 编码部分, 将一个图像经过特征提取, 变成一个向量. 前面说过: 深度学习本质上只做件事情, 就是特征提取…

【ESXi 7.x/8.x】ESXi 配置备份与还原

目录 1. 使用 ESXi命令行备份数据(1)将已更改的配置与持久存储同步(2)备份 ESXi 主机的配置数据(3)下载配置文件通过浏览器下载配置文件通过wget命令下载 (4)注意事项 2. 还原 ESXi …

基于Java班主任助理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

一直报错npm ERR! cb() never called!删除缓存仍然不行

看到npm下载包出错, 通常我们会手动删除node-modules这个文件夹来解决. 但是往往现实很骨感, 然后我们会找网上各种方法来解决, 比如这篇文章 但是当所有方法都尝试了一遍, 仍然还是出错, 这到底是什么原因呢? 可以使用npm config ls 查看一下我们电脑上是否会有一份.npmrc…

前端Vue自定义顶部搜索框 热门搜索 历史搜索 用于搜索跳转使用

前端Vue自定义顶部搜索框 热门搜索 历史搜索 用于搜索跳转使用&#xff0c; 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13128 效果图如下&#xff1a; #### 自定义顶部搜索框 用于搜索跳转使用方法 使用方法 <!-- 自定义顶…

【MySQL新手入门系列四】:手把手教你MySQL数据查询由入门到学徒

SQL语言是与数据库交互的机制&#xff0c;是关系型数据库的标准语言。SQL语言可以用于创建、修改和查询关系数据库。SQL的SELECT语句是最重要的命令之一&#xff0c;用于从指定表中查询数据。在此博客中&#xff0c;我们将进一步了解SELECT语句以及WHERE子句以及它们的重要性。…

PCB设计实验|第一周|2月27日

目录 一、实验原理 二、实验环境 三、实验结果 四、实验总结 一、实验原理 Altium Designer 提供了唯一一款统一的应用方案&#xff0c;其综合电子产品一体化开发所需的所有必须技术和功能。Altium Designer 在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的…

Axure基础:中继器与热区

一、中继器 1、中继器的主要作用 中继器就是临时的数据库&#xff0c;在我们需要当前原型图存储和变更一些数据的时候会经常用到。 能用到中继器的一般都是高保真原型&#xff0c;如果不需要大量的数据动态展示&#xff0c;那么几乎用不到或者搞动态面板也可以实现。 下面我…

selenium之元素定位

一、selenium安装 pip3 install selenium 二、安装浏览器驱动 1&#xff1a;下载最新的浏览器驱动 chrome浏览器驱动下载地址&#xff1a; https://registry.npmmirror.com/binary.html?pathchromedriver/ 查看自己电脑上安装的chrome浏览器版本号&#xff0c;驱动和浏览…

【工程实践】python实现多进程

1 多线程与多进程 Python中比较常见的并发方式主要有两种&#xff1a;多线程和多进程。 1-1 多线程 多线程即在一个进程中启动多个线程执行任务。一般来说使用多线程可以达到并行的目的&#xff0c;但由于Python中使用了全局解释锁GIL的概念&#xff0c;导致Python中的多线程并…

Doo Prime 德璞资本:怎么买原油期货?原油期货买卖策略分享

随着中国经济市场的逐步开放&#xff0c;也为了快速和国际金融接轨&#xff0c;我国于2018年3月26日正式挂牌上市原油期货交易。并且我国的原油期货交易合约和美原油期货和布伦特原油期货交易是相互影响的&#xff0c;这让中国投资者可以足不出户的进行原油期货投资。那么在国内…

Jconsole 开启远程连接遇到的一些坑

最近在学习 JVM&#xff0c;其中涉及到性能、内存等指标分析需要使用工具分享&#xff0c;Java 提供了几个可视化工具来监控和管理 Java 应用&#xff0c;比如 Jconsole、JVisual、JMC&#xff0c;他们以图形化的界面实时的监控程序各种性能指标以及内存、CPU 的使用情况。 Jco…

Triton教程 --- 模型管理

Triton教程 — 模型管理 Triton系列教程: 快速开始利用Triton部署你自己的模型Triton架构模型仓库存储代理模型设置优化动态批处理速率限制器 Triton 提供的模型管理 API 是 HTTP/REST 和 GRPC 协议的一部分&#xff0c;也是 C API 的一部分。 Triton 以三种模型控制模式之一…

5.实用干货-你可能没留意的几个生信基础

Reads&#xff1a;高通量测序平台产生的序列。 Raw Reads&#xff1a;原始下机数据称为Raw Reads&#xff08;Raw data&#xff09;。 Clean Reads&#xff1a;通过生物信息的方法&#xff0c;去除一些质量差的reads&#xff08;比如测序错误&#xff0c;长度小于20的reads&a…

TypeScript零基础入门之背景介绍和环境安装

一、什么是TypeScript TypeScript是一种由微软开发和维护的开源编程语言。它是JavaScript的超集&#xff0c;意味着任何JavaScript程序都是一种有效的TypeScript程序。TypeScript添加了静态类型、类、接口、枚举和命名空间等概念&#xff0c;同时支持ES6特性。TypeScript被视为…

Flutter 初探原生混合开发

转载请注明出处&#xff1a;https://blog.csdn.net/kong_gu_you_lan/article/details/131320733?spm1001.2014.3001.5501 本文出自 容华谢后的博客 0.写在前面 现如今跨平台技术被越来越多的开发者提起和应用&#xff0c;从最早的Java到后来的RN、Weex&#xff0c;到现在的Co…

每日学术速递6.11

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Video-ChatGPT: Towards Detailed Video Understanding via Large Vision and Language Model 标题&#xff1a;Video-ChatGPT&#xff1a;通过大型视觉和语言模型实现详细的视频理…