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

C++map容器

map容器

虽然看起来是键值对形式但底层是红黑树实现,为了自动按「键」排序,保证查询 / 插入效率;

#include<iostream>#include<map>#include<set>#include<algorithm>/* map 容器 关联式容器 python字典 它的元素是 key - value 键值对 key键是唯一的 value值是可以重复的 map中元素是按照key自动排序 使用key访问 */// 使用函数模板template<typenameT1,typenameT2>voiddisplay(conststd::map<T1,T2>&arr){// 打印 array 数组内的元素for(constauto&i:arr)std::cout<<i.first<<" "<<i.second<<" ";std::cout<<std::endl;};voidprintmap(conststd::map<std::string,std::set<int>>&m){for(constauto&i:m){std::cout<<i.first<<" ";for(constauto&s:i.second)std::cout<<s<<" ";}std::cout<<std::endl;}voidtest1(){std::map<std::string,int>s1{{"a3",3},{"a2",2},{"a1",1},};display(s1);// 自动根据key排序// 插入一个pairs1.insert(std::pair<std::string,int>("A1",100));display(s1);// 插入一个pairs1.insert(std::make_pair("B1",200));display(s1);// 不存在-插入 或 存在-修改s1["AA"]=300;// 插入s1["AA"]=200;// 修改s1["AA"]+=300;// 在原基础做运算 修改std::cout<<"a1计数"<<s1.count("a1")<<std::endl;std::cout<<"sm计数"<<s1.count("sm")<<std::endl;autoit=s1.find("a3");// 迭代器 或者 end()if(it!=s1.end())std::cout<<"已找到"<<it->first<<" "<<it->second<<std::endl;elsestd::cout<<"未找到"<<std::endl;s1.clear();// 可以使用清空}voidtest2(){std::map<std::string,std::set<int>>s1{{"a3",{1,2,3}},{"a2",{22,23,24}},{"a1",{44,45,46}},};printmap(s1);s1["a5"].insert(80);// 插入printmap(s1);autoit=s1.find("a1");// 查找 指定元素if(it!=s1.end()){it->second.erase(44);// 删除 指定元素}printmap(s1);}intmain(){// test1();test2();}
http://www.jsqmd.com/news/507455/

相关文章:

  • GitHub_Trending/we/WeChatMsg架构解析:核心组件设计与交互逻辑
  • Qwen3-32B-Chat开源模型对比评测:Llama3-70B/Qwen3-32B/DeepSeek-V3推理效率PK
  • C++ stack 容器适配器-栈
  • FPGA动态部分重配置技术的三大实现方案对比
  • Rancher容器网络深度剖析:从基础概念到高级配置
  • 别再傻傻分不清了!从摄像头RAW到屏幕RGB,图像格式转换保姆级指南
  • 大小端的计算公式
  • Linux网络编程:TCP初体验
  • Qt 线程
  • CosyVoice 实战部署全攻略:从云端实例到本地服务,5步打造专属语音克隆应用
  • python中class与C++class的区别和联系
  • 终极指南:MS-DOS批处理变量使用与早期脚本参数传递技巧
  • 基频检测算法总结
  • Zig核心特性深度解析:为何它能替代C成为系统编程新宠
  • 如何轻松实现微信聊天记录从JSON到PDF的完整转换:GitHub_Trending/we/WeChatMsg终极指南
  • 深入解析Python的glob.glob()函数:高效递归匹配文件与目录的实战技巧
  • 海康威视DS-2CD2T2HY-LP1刷机固件包|含专用刷机工具+通用版固件|支持强刷救砖|终身可重复使用
  • Navicat Premium连接Oracle 11g保姆级教程(附instantclient配置避坑指南)
  • BackInTime 开源项目安装与使用指南
  • UR5机械臂实战:不依赖MoveIt的直接ROS控制方法(Python示例)
  • 100套前端可视化模板合集:支持HTML与Vue双架构,集成高德地图+百度ECharts图表
  • TF-IDF vs Word2Vec:如何根据你的项目需求选择合适的文本表示方法?
  • 探秘UI宝盒:18个顶级UI片段让你的前端开发效率提升300%
  • Discord 图片日志记录器使用教程
  • Dioxus国际化方案:构建多语言支持的全球应用
  • Postgres与Mybatis高效批量操作实战:从基础到高级冲突处理
  • 为什么老项目必须升级Apache Commons Collections?从CC1链看第三方库的安全风险
  • RAG分块策略实战:5种方法代码对比与性能测试(含GPT-4分块技巧)
  • 从克尔效应到频谱展宽:用Lumerical INTERCONNECT可视化SPM全流程
  • PVE 2.5G网卡性能优化:从通用驱动r8169到专用驱动r8125的实战迁移