example4_custom_hash_function.cpp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
#include <cstdint>

std::uint32_t Hash(void* p) {
    std::uintptr_t val = reinterpret_cast<std::uintptr_t>(p);
    return static_cast<std::uint32_t>(val ^ (val >> 32));
}

int main() {
    int a[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; ++i) {
        std::cout << "Hash of &a[" << i << "]: " << Hash(&a[i]) << std::endl;
    }
    return 0;
}
Back to reinterpret_cast