std::hash

1
template<size_t N> struct hash<bitset<N>>;
(since C++11)

The template specialization of std::hash for std::bitset<N> allows users to obtain hashes of objects of type std::bitset<N>.

Example

The following code shows one possible output of a hash function used on several bitsets:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <bitset>
#include <functional>
  
int main()
{
    std::bitset<4> b1(1);
    std::bitset<4> b2(2);
    std::bitset<4> b3(b2);
  
    std::hash<std::bitset<4>> hash_fn;
  
    size_t h1 = hash_fn(b1);
    size_t h2 = hash_fn(b2);
    size_t h3 = hash_fn(b3);
  
    std::cout << h1 << '\n';
    std::cout << h2 << '\n';
    std::cout << h3 << '\n';
}

Output:

1
2
3
67918732
118251589
118251589

See also

(C++11)
hash function object
(class template)
doc_CPP
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.