如何计算指针的哈希值?

Ahs*_*eeb 1 c++ hash pointers linked-list

我想创建一个哈希表,我可以在其中存储以指针为键的值。例如在 C++ 中,如果我们将链表定义为:

struct Node{
 int val;
 Node* next;
}
Run Code Online (Sandbox Code Playgroud)

我可以创建一个带有Nodeusingstd::unordered_mapstd::maplike指针的哈希表:

unordered_map<Node*,int> um;
Node* a = (Node*)malloc(sizeof(Node));
um[a]=12;
cout<<um[a]<<endl //This prints 12
Run Code Online (Sandbox Code Playgroud)

现在,如果我想在没有标准库的情况下执行此操作,我该如何计算Node指针的哈希值?

use*_*751 5

将它们转换为uintptr_t,然后计算整数的哈希值。