indexing - 什么决定了元素/桶的大小?- 哈希索引
问题描述
我搜索过的承诺,人们也问过类似的问题,但答案似乎总是技术上不可能,但没有说明原因。我也进行了谷歌搜索并获得了相同的信息。
我是从独立于语言的方面提出这个问题的。我知道哈希索引的工作原理是创建一个数组,然后将一个键放入一个哈希函数,然后映射到数组中的一个索引。文献总是说每个键只能有一个值,我假设这取决于数据类型/cpu 意味着内存中每个元素/索引 4,8 个字节。我知道,如果您使用指向另一个数组或列表的指针,每个键可以有多个值,但技术上阻止您声明例如键 = 汽车值 = 奥迪、蓝色、房地产、19 英寸车轮并在该元素中放置更多字节?
是否因为对索引的调用需要在一次内存读取中进行,并且存储桶的最大大小与数据总线宽度相同?还是因为这就是编译器的设计方式,理论上他们可以让编译器使用那些声明每个键需要多个值的代码?或者最后它可能与散列函数有关,因为它事先知道数组的大小,并且为了将所有键/值对放入连续内存中,它需要每个元素只存储一个值?
抱歉,如果我遗漏了一些非常明显的东西,但我就是不明白为什么它在技术上是不可能的。谢谢你听我继续大声笑
解决方案
推荐阅读
- arrays - patchValue 仅返回最后一个索引的值
- reporting-services - 需要帮助在 ssrs 中编写表达式以根据条件计算字段
- github - 在 Github Action Workflow 中根据拉取请求获取基础分支 SHA
- html - 在编辑按钮上单击在输入文本字段中显示行数据并在 React js 中更新同一行中的新值
- reactjs - 如何在 reactjs 中将 XML 转换为 JSON?
- paypal - 如何使用 PayPal Giving Fund 向另一个帐户提供小费
- powershell - 如何在powershell中执行bolt命令?
- forms - 如何使用 react-hook-form 为 KeyboardDatePicker 设置条件默认值?
- postgresql - 如何在 PostgreSQL 中选择不同的复合主键的第一列?
- c - CS50 - pset4 过滤器“模糊”问题