The C++ function unordered_map::bucket() function returns the bucket number where element with key k is located. Bucket is a memory space in the container's hash table to which elements are assigned based on the hash value of their key. Valid range of buckets is from 0 to bucket_count - 1.
SyntaxFollowing is the Syntax of std::unordered_map::bucket() function.
size_type bucket(const key_type& k) const;Parameters
k − It indicates the key whose bucket is to be located.
Returns the unsigned integral type that is the order number of the bucket corresponding to key k.
Example 1Following is the example, where we are going to demonstrate the usage of unordered_map::bucket() function.
#include <iostream> #include <unordered_map> using namespace std; int main(void){ unordered_map<char, int> um = { {'a', 1}, {'b', 2}, {'c', 3}, {'d', 4}, {'e', 5} }; for (auto it = um.begin(); it != um.end(); ++it) { cout << "Element " << "[" << it->first << " : "<< it->second << "] " << "is in "<< um.bucket(it->first) << " bucket." << endl; } return 0; }Output
Following is the output of the above code −
Element [e : 5] is in 3 bucket. Element [d : 4] is in 2 bucket. Element [c : 3] is in 1 bucket. Element [b : 2] is in 0 bucket. Element [a : 1] is in 6 bucket.Example 2
In the following example, we are creating an unordered_map that stores the only string value and counting the number of buckets assigned to each name in the current unordered_map.
#include <iostream> #include <unordered_map> using namespace std; int main(void) { unordered_map<string, string> um = { {"Aman", "Ranchi"}, {"Vivek", "Kanpur"}, {"Akash", "Daltonganj"}, {"Revathi", "Wrangle"}, {"Sarika", "Banaras"} }; for (auto it = um.begin(); it != um.end(); ++it) { cout << "Element " << "[" << it->first << " : " << it->second << "] " << "is in " << um.bucket(it->first) << " bucket." << endl; } return 0; }Output
Following is the output of the above code −
Element [Sarika : Banaras] is in 9 bucket. Element [Revathi : Wrangle] is in 10 bucket. Element [Akash : Daltonganj] is in 5 bucket. Element [Vivek : Kanpur] is in 4 bucket. Element [Aman : Ranchi] is in 8 bucket.Example 3
Consider the following example, where we are going to displaying the number of buckets of the iteration pointing to the first element of the container from unordered_map.
#include <iostream> #include <unordered_map> using namespace std; int main(void) { unordered_map<string, string> um = { {"Aman", "Ranchi"}, {"Vivek", "Kanpur"}, {"Akash", "Daltonganj"}, {"Revathi", "Wrangle"}, {"Sarika", "Banaras"} }; // prints the bucket number of the beginning element auto it = um.begin(); // stores the bucket number of the key k int number = um.bucket(it->first); cout << "The bucket number of key " << it->first << " is " << number; return 0; }Output
Let us compile and run the above program, this will produce the following result −
The bucket number of key Sarika is 9
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4