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

C++STL——map与set的使用

map与set

  • 容器
  • set与map的共同
  • map

容器

关联式容器也是⽤来存储数据的,与序列式容器不同的是,关联式容器逻辑结构通常是⾮线性结构,两个位置有紧密的关联关系,交换⼀下,他的存储结构就被破坏了。顺序容器中的元素是按关键字来保存和访问的关联式容器有map/set系列和unordered_map/unordered_set。
map和set底层是红⿊树,红⿊树是⼀颗平衡⼆叉搜索树。set是key搜索场景的结构,
map是key/value搜索场景的结构。

set与map的共同

首先set与map的迭代器都是双向迭代器,这里在前文list提到,这里不过多赘述。
set与map的区别就是set是key型,而map是key/value型。即set只存储关键字,map是存储关键字与对应的值的。由于set与map底层都是红黑树(在后面讲解),所以会进行排序(默认是升序,如果需要降序则需要仿函数/set<int, greater<int>> s,),set与map都是不支持插入相同的值的,而multiset与multimap支持插入冗余值。

map

map使⽤pair<Key, T>存储键值对数据。map是支持修改value的,但不能修改key,因为一旦修改就会破坏树的结构。map进行修改的方式有两种,一种就是通过map的迭代器进行访问second,另一种就是通过[],这个操作符变成了一个多功能操作符,其兼具插入查找修改的功能

	map<string,int>m;m[k]++;

以上代码功能:如果k在map中,就将k对应的value值++,如果k不在map中,就将k插入到map中,同时将value置为默认值,并且++ 。可以得知[]是具备多种功能的操作符,后续会实现map与set的封装。

http://www.xdnf.cn/news/695287.html

相关文章:

  • “顶点着色器”和“片元着色器”是先处理完所有顶点再统一进入片元阶段,还是一个顶点处理完就去跑它的片元?
  • 上传头像upload的简易方法,转base64调接口的
  • Spring AI 系列之使用 Spring AI 开发模型上下文协议(MCP)
  • maven编译时跳过test过程
  • MYSQL备份恢复知识:第六章:恢复原理
  • pythonocc hlr实例 deepwiki 显示隐藏线
  • Linux 系统入门篇四
  • SPEAR开源程序是用于逼真演示 AI 研究的模拟器
  • 【STM32】按键控制LED 光敏传感器控制蜂鸣器
  • HTTPS加密通信详解及在Spring Boot中的实现
  • 网盘解析工具v1.3.6,增加文件夹解析下载
  • 工业级安卓触控一体机在激光机械中的应用分析
  • 异步上传石墨文件进度条前端展示记录(采用Redis中String数据结构实现)
  • 杆塔倾斜在线监测装置:电力设施安全运行的“数字守卫”
  • Shell - ​​Here Document(HereDoc)
  • 今日行情明日机会——20250528
  • NC37 合并区间【牛客网】
  • 设计模式-依赖倒转原则
  • 微服务FallbackFactory和FallbackClass
  • MCP Server的五种主流架构:从原理到实践的深度解析
  • DeepSeek 赋能智能物流:解锁仓储机器人调度的无限可能
  • 油烟净化器风道设计要点:如何降低风阻并提升净化效果
  • RPG14.装备武器与卸载武器
  • 压测的服务器和用户环境的区别
  • 网站服务器出现异常的原因是什么?
  • Houdini-为人工智能训练生成合成数据
  • Vision + Robot New Style
  • 民意调查员
  • 将 AI 解答转换为 Word 文档
  • [网页五子棋][匹配模块]前后端交互接口(消息推送机制)、客户端开发(匹配页面、匹配功能)