The hash class is default constructible, which means that one can construct this object without any arguments or initialization values. It is used to get the hash value of the argument that is being passed to it. If the argument doesn’t change, the value doesn’t change either.
Syntax:
template <class T> struct hash;
Syntax to create object:
hash<class template> object-name
Member functions: This Hash class only has one member function:
- operator(): It returns hashed value for given argument.
Below is the implementation of the hash class:
Example:
#include <bitset> // functional header // for hash<class template> class #include <functional> #include <iostream> #include <string> #include <vector> using namespace std; // To demonstrate String Hashing void stringHashing() { // Get the string // to get its hash value string hashing1 = "Geeks" ; // Instatiation of Object hash<string> mystdhash; // Using operator() to get hash value cout << "String hash values: " << mystdhash(hashing1) << endl; } // To demonstrate BITSET Hashing void bitsetHashing() { // Get the BITSET // to get its hash value bitset<5> h_bitset( "10101" ); // Instatiation of Object hash<bitset<5> > hash_bitset; // Using operator() to get hash value cout << "\nBitset 10101 hash value: " << hash_bitset(h_bitset) << endl; } // To demonstrate Vector<bool> Hashing void vectorHashing() { // Get the Vector<bool> // to get its hash value vector< bool > h_vecbool{ true , false , true , false }; // Instatiation of Object hash<vector< bool > > hash_vector_bool; // Using operator() to get hash value cout << "\nVector<bool> hash value: " << hash_vector_bool(h_vecbool) << endl; } // To demonstrate Char Hashing void charHashing() { // Get the char // to get its hash value char ch = 'a' ; // Instatiation of Object hash< char > hash_char; // Using operator() to get hash value cout << "\nChar hash values: " << hash_char(ch) << endl; } // Driver Code int main() { stringHashing(); bitsetHashing(); vectorHashing(); charHashing(); } |
String hash values: 4457761756728957899 Bitset 10101 hash value: 17123654466142159564 Vectorhash value: 16935082123893034051 Char hash values: 97
Reference: http://www.cplusplus.com/reference/functional/hash/
Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.