数组:哈希表的基础结构是一个数组,用于存储键值对。数组的每个元素称为“桶”(bucket),用于存储一个或多个键值对。 哈希函数:哈希表使用一个哈希函数将键转换为数组的索引。哈希函数接收一个键作为输入,然后返回一个整数,该整数用作数组的索引。理想情况下,哈希函数应该将不同的键映射到不同的索引,以减少冲突。
/* * 字典 * * 每个字典使用两个哈希表,用于实现渐进式 rehash */typedef struct dict { // 特定于类型的处理函数 dictType *type; // 类型处理函数的私有数据 void *privdata; // 哈希表(2 个) dictht ht[2]; // 记录 rehash 进度的标志,值为 -1 表示 rehash 未进行 int rehashidx; // 当前...
本视频主要讲解了字典数据结构的底层实现原理,包括如何根据键查询对应的值。首先介绍了存储时键通过哈希方法转换成数组索引的过程,然后详细阐述了查询时如何根据键再次计算哈希值,并在数组中查找对应的值。如果遇到哈希冲突,即不同键对应相同的数组索引,需要进一步比较键值以确定是否为所查询的对象。视频还提到了自定义对...
redis使用过什么数据结构?哈希表存入数据的命令?redis哈希表底层的实现原理? redis的集群和分布式式是怎么做的?谈谈你的理解 Mysql的索引有用过吗?介绍一下索引 为什么使用B+树做索引?查询10亿次要进行几次搜索。(玛德,我听成11次了) 联合索引有了解过吗?联合索引abc,查询用到了where b = 1 and c = 2有使...
说一下C++中如何实现多态的? 那你说的父类指针指向子类引用,解释一下底层是怎么实现的(为什么能找到子类对应的func)? 智能指针有用过吗,说一下他们的实现原理? shared_ptr的计数器底层是怎么实现的?(我不知道,面试官说没关系按照你自己的理解你会怎么设计,我就回答,用一个哈希表,存放资源地址和对应的指针) ...