数据结构-哈希表

介绍

哈希表(Hash table,也叫散列表)是一种数据结构,它可以根据关键码值(Key value)而直接进行访问。通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。

实现举例

c++ 复制代码
#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;
}

总结

哈希表的应用场景非常广泛,以下是一些常见的应用场景:

  1. 快速查找:哈希表可以用于快速查找数据,因为通过哈希函数可以将关键字直接映射到表中一个位置,从而快速定位记录。
  2. 关联数组:哈希表可以作为关联数组使用,将键值对存储在哈希表中,通过键来获取对应的值。
  3. 统计频率:哈希表可以用于统计数据中每个元素出现的频率,将元素作为键存储在哈希表中,并将出现的次数作为值存储在哈希表中。
  4. 集合操作:哈希表可以用于实现集合操作,例如求两个集合的交集、并集、差集等。
  5. 字典存储:哈希表可以用于实现字典存储,将字符串映射为整数值,方便查找和比较。
相关推荐
洛_尘16 分钟前
数据结构--6:优先级队列(堆)
java·数据结构
让我们一起加油好吗20 分钟前
【数据结构】并查集(操作详解 + 模板 + 练习)
数据结构·算法·并查集·洛谷
晨非辰1 小时前
【数据结构】排序详解:从快速排序分区逻辑,到携手冒泡排序的算法效率深度评测
运维·数据结构·c++·人工智能·后端·深度学习·排序算法
.小小陈.2 小时前
数据结构6:排序
数据结构
熬了夜的程序员10 小时前
【LeetCode】109. 有序链表转换二叉搜索树
数据结构·算法·leetcode·链表·职场和发展·深度优先
立志成为大牛的小牛11 小时前
数据结构——四十一、分块查找(索引顺序查找)(王道408)
数据结构·学习·程序人生·考研·算法
前端小L13 小时前
二分查找专题(九):“降维”的魔术!将二维矩阵“拉平”为一维
数据结构·算法
她说人狗殊途13 小时前
时间复杂度(按增长速度从低到高排序)包括以下几类,用于描述算法执行时间随输入规模 n 增长的变化趋势:
数据结构·算法·排序算法
Miraitowa_cheems13 小时前
LeetCode算法日记 - Day 102: 不相交的线
数据结构·算法·leetcode·深度优先·动态规划
野生技术架构师13 小时前
盘一盘Redis的底层数据结构
数据结构·数据库·redis