The unordered_map::hash_function() is a built in function in C++ STL which is used to get the hash function. This hash function is a unary function which takes a single argument only and returns a unique value of type size_t based on it.
Syntax:
unordered_map_name.hash_function()
Parameter: The function does not accept any parameter.
Return Value: The function returns the hash function.
Time complexity: Time Complexity of this function is constant O(1).
Below programs illustrate the unordered_map::hash_function() function.
Example 1
// C++ program to illustrate the // unordered_map::hash_function() #include <bits/stdc++.h> using namespace std;
int main()
{ // declaration
unordered_map<string, string> sample;
// inserts key and elements
sample.insert({ "Ankit" , "MNNIT" });
sample.insert({ "Ram" , "MNNIT" });
sample.insert({ "Manoj" , "Trichy" });
sample.insert({ "geeks" , "geeks" });
// use of hash_function
unordered_map<string, string>::hasher fn
= sample.hash_function();
cout << fn( "geeks" ) << endl;
// print the key and elements
cout << "Key and Elements: " ;
for ( auto it = sample.begin(); it != sample.end(); it++) {
cout << "\n{" << it->first << ":"
<< it->second << "}, " ;
}
return 0;
} |
Output:
15276750567035005396 Key and Elements: {geeks:geeks}, {Manoj:Trichy}, {Ankit:MNNIT}, {Ram:MNNIT},
Example 2
// C++ program to illustrate the // unordered_map::hash_function() #include <bits/stdc++.h> using namespace std;
int main()
{ // declaration
unordered_map< int , int > sample;
// inserts key and elements
sample.insert({ 1, 5 });
sample.insert({ 2, 6 });
sample.insert({ 3, 6 });
sample.insert({ 4, 7 });
// use of hash_function
unordered_map< int , int >::hasher fn
= sample.hash_function();
cout << fn(4) << endl;
// print the key and elements
cout << "Key and Elements: " ;
for ( auto it = sample.begin(); it != sample.end(); it++) {
cout << "\n{" << it->first << ":"
<< it->second << "}, " ;
}
return 0;
} |
Output:
4 Key and Elements: {4:7}, {3:6}, {1:5}, {2:6},