这个问题专门针对哈希表,但也可能涉及其他数据结构,例如链表或树。
例如,如果您有如下结构:
struct Data
{
int value1;
int value2;
int value3;
}
并且每个整数都是 4 字节对齐并按顺序存储在内存中的,哈希表的键和值是否也按顺序存储?如果您考虑以下情况:
std::map<int, string> list;
list[0] = "first";
第一个元素是这样表示的吗?
struct ListNode
{
int key;
string value;
}
如果键和值是 4 字节对齐并按顺序存储的,那么下一对存储在哪里有关系吗?
那么链表中的节点呢?
只是试图在概念上可视化这一点,并查看内存存储的相同准则是否也适用于开放寻址散列(负载低于 1)与链式散列(负载无关紧要)。