数据结构-哈希表
2023-12-13 17:33:15
介绍
哈希表(Hash table,也叫散列表)是一种数据结构,它可以根据关键码值(Key value)而直接进行访问。通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。
实现举例
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
// 创建一个哈希表,使用字符串作为键,整数作为值
unordered_map<string, int> hashTable;
// 插入键值对
hashTable["apple"] = 1;
hashTable["banana"] = 2;
hashTable["cherry"] = 3;
// 查找键对应的值
if (hashTable.find("banana") != hashTable.end()) {
cout << "The value of banana is: " << hashTable["banana"] << endl;
}
// 遍历哈希表并输出键值对
for (auto& kv : hashTable) {
cout << kv.first << " : " << kv.second << endl;
}
return 0;
}
总结
哈希表的应用场景非常广泛,以下是一些常见的应用场景:
- 快速查找:哈希表可以用于快速查找数据,因为通过哈希函数可以将关键字直接映射到表中一个位置,从而快速定位记录。
- 关联数组:哈希表可以作为关联数组使用,将键值对存储在哈希表中,通过键来获取对应的值。
- 统计频率:哈希表可以用于统计数据中每个元素出现的频率,将元素作为键存储在哈希表中,并将出现的次数作为值存储在哈希表中。
- 集合操作:哈希表可以用于实现集合操作,例如求两个集合的交集、并集、差集等。
- 字典存储:哈希表可以用于实现字典存储,将字符串映射为整数值,方便查找和比较。
文章来源:https://blog.csdn.net/scy518/article/details/134845506
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!