STL之map(映射/地图)
📅 2026/8/1 20:19:02
👁️ 次浏览
须知在尖括号中定义你容器里的元素类型 mapstring,int people使用前提#includemap1.特征map元素存储在键值对中Map 映射通常实现为二叉搜索树2.映射中的元素包括可通过键而不是索引访问并且每个键都是唯一的。按其键自动按升序排序。mapkeytype, valuetypemapName也就是说上面的string是keyint是value。3.声明时赋值方式eg:mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} };4.访问方式无法通过索引访问需要通过key访问对应的value值也可以通过.at()来访问eg:#include iostream #include map using namespace std; int main() { // Create a map that will store the name and age of different people mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} }; // Get the value associated with the key John cout John is: people[John] \n; // Get the value associated with the key Adele cout Adele is: people.at(Adele) \n; return 0; }运行结果更改值可以people[John] value,也可以people.at(John) value添加值eg:people[key] value也可以使用.insert({key,value})map中不能出现key相同的元素但是value是可以相等的5.删除元素用.erase()只用删除Key值全删可以用.cleareg:.erase(John)6.查看地图大小.size()7.查询是否为空.empty()8..count()还可以使用该函数检查是否存在特定元素。.count(key)如果元素存在则返回 true如果元素不存在则返回 falseeg:#include iostream #include map using namespace std; int main() { mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} }; cout people.count(John)endl; cout people.count(chen); return 0; }运行结果9.遍历mapmap不同于前几个(vector,stack,set,queue,list)只储存一种类型的元素map存储一组元素可能相同也可能不同所以遍历方式也不同于其他。我们需要用auto关键字这个关键字可以自动识别元素的类型在循环中每次访问需要用.first和.second访问每个元素的key和value。、eg:#include iostream #include map using namespace std; int main() { mapstring, int people { {John, 32}, {Adele, 45}, {Bo, 29} }; for (auto pair : people) { cout pair.first is: pair.second \n; } return 0; }输出结果通过输出结果我们可以发现map自动把key给排序了默认是升序。若想在遍历输出时是按照key的降序输出可以这样定义mapstring, int,greaterstring people { {John, 32}, {Adele, 45}, {Bo, 29} };10.swap()函数将 map 的内容与 map x 的内容交换#include iostream #include map using namespace std; int main(void) { mapchar, int m1 { {a, 1}, {b, 2}, {c, 3}, {d, 4}, {e, 5}, }; mapchar, int m2; m2.swap(m1); cout Map2 contains following elements endl; for (auto it m2.begin(); it ! m2.end(); it) cout it-first it-second endl; cout Map1 contains following elements endl; for (auto it m1.begin(); it ! m1.end(); it) cout it-first it-second endl; coutm1.size(); return 0; }运行结果unordered_map无序映射是像字典一样的数据结构。 它是键值对的序列其中只有单个值与每个唯一键相关联。 它通常被称为关联数组。它可以根据它们的键快速检索单个元素。 它还实现了直接访问运算符下标运算符[]它允许使用其键值作为参数直接访问映射值。他不会按照键的值来进行排序而是根据其哈希值组织成桶以允许直接通过键值快速访问各个元素。在通过键访问单个元素时无序映射比映射执行得更好。 但是对于范围迭代它们的性能相当低。大家根据需求来选取map还是unordered_map使用注意最新学习时了解到map并不是严格按照下标来取值的比如mapint,string mymap{{1,wuhu},{2,wuhan},{3,ningbo}};可能大多数人也认为取mymap[0]的时候指的时{1“wuhu}这份值但其实是意思是找key为0的value值当然目前mymap里没有这个key值所以会打印空并当再打印一次整个mymap时会发现0已经被加入mymap里了作为新key对应的value是空可以进行赋值。这里使用时需要注意。
在开发自定义主题或调试模板文件时,最让人头疼的往往不是复杂的逻辑算法,而是那些看似简单却频繁报错的变量调用问题。很多开发者在从静态 HTML 转向动态模板引擎时,常常困惑于数据是如何从后端传递到前端的,为什么有时候能取到值…
📅 2026/8/1 20:19:02
PotPlayer AI字幕翻译插件完整指南:免费实现实时双语观影体验 【免费下载链接】PotPlayer_Chatgpt_Translate [support ollama/other model]【兼容ollama和其他模型】将任何具有OpenAI API调用方法的模型集成到PotPlayer中。它使你在观看视频时能够实时翻译字幕&…
📅 2026/8/1 20:18:02
Textractor终极指南:3分钟掌握游戏文本提取技术,轻松突破语言障碍! 【免费下载链接】Textractor Extracts text from video games and visual novels. Highly extensible. 项目地址: https://gitcode.com/gh_mirrors/te/Textractor
还…
📅 2026/8/1 20:18:02
如何为多显示器工作环境配置完美的字体渲染效果:BetterClearTypeTuner终极指南 【免费下载链接】BetterClearTypeTuner A better way to configure ClearType font smoothing on Windows 10. 项目地址: https://gitcode.com/gh_mirrors/be/BetterClearTypeTuner …
📅 2026/8/1 22:22:51
3大核心功能让Mac永不休眠:自动鼠标移动器的智能解决方案 【免费下载链接】automatic-mouse-mover a minimalistic go library/app to keep your mac active and alive 项目地址: https://gitcode.com/gh_mirrors/au/automatic-mouse-mover
在现代工作环境中…
📅 2026/8/1 22:22:51
responsive-html-email-template进阶技巧:媒体查询与移动端适配最佳实践 【免费下载链接】responsive-html-email-template Responsive HTML email template designed to work on all major email platforms and smartphones 项目地址: https://gitcode.com/gh_mi…
📅 2026/8/1 22:22:51
15种炫酷动画效果:Piano LED Visualizer让你的钢琴演奏更吸睛 【免费下载链接】Piano-LED-Visualizer Piano LED Visualizer: Connect an LED strip to your Raspberry Pi and create an immersive visual experience for your piano playing 项目地址: https://g…
📅 2026/8/1 22:22:51
终极Go代码质量检查指南:5步打造专业级开发工作流 【免费下载链接】golangci-lint Fast linters runner for Go 项目地址: https://gitcode.com/gh_mirrors/go/golangci-lint
作为Go开发者,你是否曾因代码质量问题在深夜调试?是否希望…
📅 2026/8/1 22:22:51
跨平台流媒体下载利器:N_m3u8DL-RE如何破解DASH/HLS/MSS下载难题 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3…
📅 2026/8/1 22:21:51
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/1 0:00:26
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/1 0:00:30
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/1 0:00:30
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/8/1 1:20:16
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/8/1 1:20:19
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/8/1 1:20:17
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/1 0:00:26
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/1 0:00:30
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/1 0:00:30