哈希表的c++实现及其常用函数

news/2026/1/18 14:10:49/文章来源:https://www.cnblogs.com/asshenjiang/p/19498435

代码示例:

include

include

include

include

include<unordered_map>

using namespace std;

int main()
{
//----------1.创建哈希表:键为String类型,值为int类型----------

unordered_map<string, int> hashTable;//----------2.插入元素:三种常用方式----------//插入数据方法一:下标插入,无则新增,有则覆盖
hashTable["语文"] = 98;
hashTable["数学"] = 99;//插入数据方法二:insert+pair输入
hashTable.insert(pair<string, int>("英语", 92));//插入数据方法三:c++11列表插入
hashTable.insert({ "物理", 89 });//----------3.查找元素:两种常用方式----------//查找元素方法一:下标查找,存在的话返回对应值,不存在则自动插入一个默认值为0的键值对
cout << "数学成绩:" << hashTable["数学"] << endl;//查找元素方法二:find查找(推荐,安全),存在则返回迭代器,不存在则返回end()
auto iter = hashTable.find("英语");
if (iter != hashTable.end()) {cout << "查找到英语成绩:" << iter->second << endl;
}
else
{cout << "未查找到英语成绩。" << endl;
}//----------4.修改元素----------//修改元素方法一:直接通过下标进行修改,最简单高效
hashTable["语文"] = 99;//修改元素方法二:通过迭代器进行修改
iter = hashTable.find("物理");
if (iter != hashTable.end())
{iter->second = 91;
}
cout << "修改之后的语文成绩:" << hashTable["物理"] << endl;//----------5.删除元素----------//删除元素方法一:通过键进行删除,成功返回1,失败返回0
hashTable.erase("物理");//删除元素方法二:通过迭代器进行删除
iter = hashTable.find("语文");
if (iter != hashTable.end())
{hashTable.erase(iter);
}//----------6.遍历哈希表----------
cout << "\n哈希表中剩余数据:" << endl;//范围for循环实现
for (auto& pair : hashTable)
{cout << "科目:" << pair.first << ",成绩" << pair.second << endl;
}//----------7.常用成员函数----------cout << "\n哈希表的元素个数:" << hashTable.size() << endl;
cout << "哈希表是否为空:" << (hashTable.empty() ? "是" : "否") << endl;
cout << "哈希表的桶数(哈希桶,底层结构):" << hashTable.bucket_count() << endl;//----------8.清空哈希表----------
hashTable.clear();
cout << "清空后元素个数:" << hashTable.size() << endl;system("pause");
return 0;

}

运行结果:
数学成绩:99
查找到英语成绩:92
修改之后的语文成绩:91

哈希表中剩余数据:
科目:数学,成绩99
科目:英语,成绩92

哈希表的元素个数:2
哈希表是否为空:否
哈希表的桶数(哈希桶,底层结构):8
清空后元素个数:0

以上就是最常用的哈希表的相关操作

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动售货机(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

自动售货机(源码万字报告实物) 摘 要 自动售货机的应用&#xff0c;不仅可以充分节省人力资源&#xff0c;而且还促进商业贸易发展&#xff0c;给人们的生活带来诸多便利。可编程控制器作为控制系统的大脑&#xff0c;按照工艺说明分析&#xff0c;对各种外部输入信号按照系统的…

2026必备!9个AI论文工具,专科生轻松搞定毕业论文!

2026必备&#xff01;9个AI论文工具&#xff0c;专科生轻松搞定毕业论文&#xff01; AI 工具如何改变论文写作的未来 随着人工智能技术的飞速发展&#xff0c;越来越多的学生开始借助 AI 工具来提升论文写作的效率和质量。尤其是对于专科生而言&#xff0c;面对繁重的学业压力…

基于PLC自动门控制系统设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

PLC 基于PLC自动门控制系统设计(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 目录 基于PLC的枕式包装机控制系统设计 3 第一章 绪论 5 1.1 研究背景 5 1.2 国内外研究现状 5 2.1 枕式包装机的结构与工作流程 6 2.2 枕式包装…

强烈安利!10个AI论文工具测评,本科生毕业论文必备

强烈安利&#xff01;10个AI论文工具测评&#xff0c;本科生毕业论文必备 2026年AI论文工具测评&#xff1a;为何值得一看&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI论文工具在学术领域的应用越来越广泛。对于本科生而言&#xff0c;撰写毕业论文不仅是一项重要的…

互联网大厂Java求职面试实战:涵盖Spring Boot、微服务与AI技术的全栈问答

互联网大厂Java求职面试实战&#xff1a;涵盖Spring Boot、微服务与AI技术的全栈问答 场景背景 在一家互联网大厂的Java开发岗位面试中&#xff0c;严肃且专业的面试官与幽默搞笑的水货程序员谢飞机展开了3轮技术问答。面试内容涵盖从核心Java语言、Spring生态、数据库ORM&…

我国农产品标准化的对外贸易效应分析(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于MATLAB的通信原理实验平台设计 摘 要 基于原始虚拟实验平台&#xff0c;本文对JMatLink Java和MATLAB数字通信虚拟实验平台进行了设计和分析&#xff0c;虚拟平台的目标是为了解决教学当中出现的问题&#xff0c;促进软件开发成本的下降&#xff0c;促进教学目标得到实现&a…

基于MVC模式的在线书店的设计与实现(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于MVC模式的在线书店的设计与实现(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 基于MVC模式的在线书店的设计与实现 摘 要&#xff1a;伴随着科学技术和生产发展的进步加速了人类知识总量的增长。生产的社会化趋势加强&a…

【气动学】基于短程攻击导弹的最短时间约束并解决策梅洛问题附Matlab代码和报告

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

基于PHP的新闻发布系统的设计与开发(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于PHP的新闻发布系统的设计与开发(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 摘要 随着经济的发展&#xff0c;互联网得到快速的发展。互联网的使用范围越来越多&#xff0c;包括学校&#xff0c;政府机构&#xff0c;企…

基于三菱PLC的电烤箱温度系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于三菱PLC的电烤箱温度系统(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 基于三菱PLC的电烤箱温度系统 摘要&#xff1a; 随着社会的不断发展&#xff0c;人们改造自然的能力也在不断的提高。机械技术的发明和使用&#x…

IPTools v5.0.8.3 专业 IP 地址修改与网卡配置工具

IPTools v5.0.8.3 是由 kn007 开发的专业网络配置软件&#xff0c;依托 WMI 技术、系统组件及注册表机制构建核心功能&#xff0c;新版优化了配置文件存储逻辑与 GUI 管理&#xff0c;大幅提升网卡状态处理效率&#xff0c;为用户提供稳定便捷的 IP 地址修改与网卡配置解决方案…

谁是 2026 微振动控制领域领军者?三大企业对比为何恒帆实力领跑

随着工业制造的高端化发展&#xff0c;隔振企业需要具备全场景适配能力&#xff0c;既能满足航空航天、半导体等高端场景的需求&#xff0c;也能适配工程机械、普通机床等中端场景。2026 年&#xff0c;全场景适配能力成为隔振企业的核心竞争力。本文基于高端场景适配性、中端场…

[Vulkan 实战] 深入解析 Dynamic Uniform Buffers:高效绘制多物体的利器

在 Vulkan 图形开发中&#xff0c;当我们面对场景中成百上千个需要独立变换矩阵&#xff08;Model Matrix&#xff09;的物体时&#xff0c;如何高效地管理 Uniform Buffer 是一个经典难题。 如果我们为每个物体都分配一个独立的 VkBuffer 和 VkDescriptorSet&#xff0c;不仅…

(77页PPT)DG1145产品质量的源头华为是如何进行需求管理的(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92808859/92565922 资料解读&#xff1a;《&#xff08;77页PPT&#xff09;DG1145产品质量的源头华为是如何进行需求管理的P77》 详细资料请看本解读…

2026国产时序数据库全景图:多模融合破局,企业选型实战指南

2026国产时序数据库全景图&#xff1a;多模融合破局&#xff0c;企业选型实战指南 摘要&#xff1a;进入2026年&#xff0c;在“数字中国”与工业物联网浪潮的强劲推动下&#xff0c;国产时序数据库市场持续繁荣&#xff0c;竞争格局日趋清晰。本文将对当前主流的国产时序数据库…

自监督学习让医疗视频分析准确率翻倍

&#x1f4dd; 博客主页&#xff1a;Jax的CSDN主页 自监督学习&#xff1a;医疗视频分析准确率的革命性跃升目录自监督学习&#xff1a;医疗视频分析准确率的革命性跃升 目录 引言&#xff1a;医疗视频分析的瓶颈与突破 自监督学习的技术内核&#xff1a;从数据饥渴到高效学习 …

收集自己的每日消费类型(餐饮,购物,娱乐),统计每周各类型的消费时长,输出消费结构优化建议

1. 实际应用场景描述场景某职场人希望精细化管理个人财务&#xff0c;每天记录消费类型&#xff08;餐饮、购物、娱乐等&#xff09;、金额及对应的平均每小时消费额&#xff08;例如&#xff1a;餐饮每小时50元&#xff0c;购物每小时100元&#xff09;&#xff0c;从而计算消…

如何借助AI写好论文中的“前人工作”与“现有问题”?用ChatGPT提供全新思路颠覆认知,实测有效,直接使用

我们在写学术论文时,“前人工作”和“现有问题”这两个部分实际上至关重要,前者可以为我们的研究提供夯实的基础,后者则可以借机展示研究价值和创新点。怎么写好这两部分,既要准确反映前人成果,又要凸显研究意义以及创新呢? 七哥经常指导同仁写学术论文,总结出一些借助…

散热效率提升80%!3D VC如何解决AI算力“发热危机”?

&#x1f393;作者简介&#xff1a;科技自媒体优质创作者 &#x1f310;个人主页&#xff1a;莱歌数字-CSDN博客 &#x1f48c;公众号&#xff1a;莱歌数字&#xff08;B站同名&#xff09; &#x1f4f1;个人微信&#xff1a;yanshanYH 211、985硕士&#xff0c;从业16年 从…

leetcode 884. Uncommon Words from Two Sentences 两句话中的不常见单词

Problem: 884. Uncommon Words from Two Sentences 两句话中的不常见单词 解题过程 统计每个单词的频次&#xff0c;1的就是答案 Code class Solution { public:unordered_map<string, int> ump;vector<string> uncommonFromSentences(string s1, string s2) {s1 …