|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member types | ||||
| Member functions | ||||
(until C++20) | ||||
| Element access | ||||
| Capacity | ||||
| Modifiers | ||||
| Conversions | ||||
(C++11) | ||||
| Non-member functions | ||||
| Helper classes | ||||
std::hash (C++11) | ||||
Defined in header <bitset> | ||
template<std::size_t N> struct hash<std::bitset<N>>; | (since C++11) | |
The template specialization ofstd::hash forstd::bitset<N> allows users to obtain hashes of objects of typestd::bitset<N>.
The following code shows one possible output of a hash function used on several bitsets:
#include <bitset>#include <functional>#include <iostream> int main(){std::bitset<4> b1{0}, b2{42};std::bitset<8> b3{0}, b4{42}; std::hash<std::bitset<4>> hash_fn4;std::hash<std::bitset<8>> hash_fn8;using bin64=std::bitset<64>; std::cout<<std::hex<< bin64{hash_fn4(b1)}<<" = "<< hash_fn4(b1)<<'\n'<< bin64{hash_fn4(b2)}<<" = "<< hash_fn4(b2)<<'\n'<< bin64{hash_fn8(b3)}<<" = "<< hash_fn8(b3)<<'\n'<< bin64{hash_fn8(b4)}<<" = "<< hash_fn8(b4)<<'\n';}
Possible output:
0110110100001001111011100010011011010101100001100011011000011001 = 6d09ee26d58636191111111101011100010110100000111000111110100000111011100011110000 = ff5c5a0e3e83b8f00110110100001001111011100010011011010101100001100011011000011001 = 6d09ee26d58636190101110000011100011110011010111011100110010000110100110001001101 = 5c1c79aee6434c4d
(C++11) | hash function object (class template)[edit] |