创建网站投资多少,asp.net如何设置网站的图标,单页面制作,京东网站建设流程和结构图csp信奥赛C标准模板库STL#xff08;7#xff09;#xff1a;unordered_map的使用详解 一、unordered_map 概述
unordered_map 是 C STL 中的关联容器#xff0c;基于哈希表实现#xff0c;提供 O(1) 平均时间复杂度的查找、插入和删除操作。
1.1 基本特性
底层结构标准模板库STL7unordered_map的使用详解一、unordered_map 概述unordered_map是 C STL 中的关联容器基于哈希表实现提供 O(1) 平均时间复杂度的查找、插入和删除操作。1.1 基本特性底层结构哈希表hash table时间复杂度平均情况O(1)最坏情况O(n)元素顺序无序元素顺序与插入顺序无关头文件#include unordered_mapC版本C11 及以上二、基本用法2.1 声明和初始化#includeiostream#includeunordered_map#includestringusingnamespacestd;intmain(){// 1. 空unordered_mapunordered_mapint,stringmp1;// 2. 初始化列表unordered_mapstring,intmp2{{apple,5},{banana,3},{orange,7}};// 3. 复制构造unordered_mapstring,intmp3(mp2);return0;}2.2 常用操作// 插入元素mp[apple]5;// 使用下标运算符mp.insert({banana,3});// 使用insert方法mp.emplace(orange,7);// 原地构造效率更高// 访问元素coutmp[apple]endl;// 如果不存在会创建coutmp.at(banana)endl;// 如果不存在抛出异常// 查找元素autoitmp.find(apple);if(it!mp.end()){coutFound: it-first - it-secondendl;}// 删除元素mp.erase(apple);// 按键删除mp.erase(it);// 按迭代器删除// 遍历元素for(autopair:mp){coutpair.first: pair.secondendl;}// 大小相关coutSize: mp.size()endl;coutEmpty: mp.empty()endl;mp.clear();// 清空三、竞赛常用技巧3.1 统计频率最常见的应用// 统计数组中每个元素的出现次数vectorintnums{1,2,3,2,1,3,3,3};unordered_mapint,intfreq;for(intnum:nums){freq[num];}// 输出频率for(autop:freq){coutp.first appears p.second timesendl;}3.2 两数之和问题// 在数组中找到两个数使它们的和等于目标值vectorinttwoSum(vectorintnums,inttarget){unordered_mapint,inthash;// 值 - 索引for(inti0;inums.size();i){intcomplementtarget-nums[i];if(hash.find(complement)!hash.end()){return{hash[complement],i};}hash[nums[i]]i;}return{};}3.3 字符串模式匹配// 判断两个字符串是否为字母异位词boolisAnagram(string s,string t){if(s.length()!t.length())returnfalse;unordered_mapchar,intcount;for(charc:s)count[c];for(charc:t){if(--count[c]0)returnfalse;}returntrue;}四、与map的对比特性unordered_mapmap底层实现哈希表红黑树时间复杂度平均O(1)最差O(n)O(log n)元素顺序无序按键排序内存使用通常较少通常较多适用场景频繁查找不关心顺序需要有序遍历选择建议如果只需要快速查找使用unordered_map如果需要有序遍历使用map如果有大量数据且查找频繁优先考虑unordered_map总结在CSP信奥赛中unordered_map是最重要的数据结构之一尤其适合需要快速查找的场景- O(1)的平均时间复杂度统计频率- 计数、频率统计问题缓存中间结果- 动态规划中的记忆化搜索去重和存在性判断- 配合unordered_set使用掌握好unordered_map的使用能在竞赛中解决大量查找和统计类问题是C选手的必备技能。各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;intmain(){cout########## 一站式掌握信奥赛知识! ##########;cout############# 冲刺信奥赛拿奖! #############;cout###### 课程购买后永久学习不受限制! ######;return0;}一、CSP信奥赛C通关学习视频课C语法基础C语法进阶C算法C数据结构CSP信奥赛数学CSP信奥赛STL二、CSP信奥赛C竞赛拿奖视频课信奥赛csp-j初赛高频考点解析CSP信奥赛C复赛集训课12大高频考点专题集训三、考级、竞赛刷题题单及题解GESP C考级真题题解CSP信奥赛C初赛及复赛高频考点真题解析CSP信奥赛C一等奖通关刷题题单及题解详细内容1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转3、csp信奥赛冲刺一等奖有效刷题题解CSP信奥赛C初赛及复赛高频考点真题解析持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转2025 csp-j 复赛真题及答案解析最新更新2025 csp-x(山东) 复赛真题及答案解析最新更新2025 csp-x(河南) 复赛真题及答案解析最新更新2025 csp-x(辽宁) 复赛真题及答案解析最新更新2025 csp-x(江西) 复赛真题及答案解析最新更新2025 csp-x(广西) 复赛真题及答案解析最新更新2020 ~ 2024 csp 复赛真题题单及题解2019 ~ 2022 csp-j 初赛高频考点真题分类解析2021 ~ 2024 csp-s 初赛高频考点解析2023 ~ 2024 csp-x (山东)初赛真题及答案解析2024 csp-j 初赛真题及答案解析2025 csp-j 初赛真题及答案解析最新更新2025 csp-s 初赛真题及答案解析最新更新2025 csp-x (山东)初赛真题及答案解析(最新更新)2025 csp-x (江西)初赛真题及答案解析(最新更新)2025 csp-x (辽宁)初赛真题及答案解析(最新更新)CSP信奥赛C一等奖通关刷题题单及题解持续更新https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转129 道刷题练习和详细题解涉及模拟算法、数学思维、二分算法、 前缀和、差分、深搜、广搜、DP专题、 树和图4、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}