我想创建一个哈希表,可以在其中存储以指针为键的值。例如,在C ++中,如果我们将链接列表定义为:
struct Node{
int val;
Node* next;
}
我可以使用Node
或std::unordered_map
来创建带有std::map
指针的哈希表:
unordered_map<Node*,int> um;
Node* a = (Node*)malloc(sizeof(Node));
um[a]=12;
cout<<um[a]<<endl //This prints 12
现在,如果我想在没有标准库的情况下执行此操作,如何计算Node
指针的哈希值?
将它们投射到uintptr_t
,然后计算整数的哈希值。