衡水市网站建设_网站建设公司_VS Code_seo优化
2026/1/18 14:08:10 网站建设 项目流程

代码示例:

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询