C++ Unordered_map Library - bucket() Function



Description

The C++ function std::unordered_map::bucket() 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.

Declaration

Following is the declaration for std::unordered_map::bucket() function form std::unordered_map header.

C++11

size_type bucket(const key_type& k) const;

Parameters

k − Key whose bucket is to be located.

Return value

Returns the order number of the bucket corresponding to key k.

Time complexity

Constant i.e. O(1)

Example

The following example shows the usage of std::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;
}

Let us compile and run the above program, this will produce the following result −

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.
unordered_map.htm
Advertisements