C++ Unordered_multimap Library - bucket() Function


Advertisements

Description

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

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_multimap<char, int> umm = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5}
            };
   cout << "Unordered multimap contains following elements" << endl;

   for (auto it = umm.begin(); it != umm.end(); ++it) {
      cout << "Element " << "[" << it->first  << " : "
          << it->second << "] " << "is in " 
          << umm.bucket(it->first) << " bucket." << endl; 
   }

   return 0;
}

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

Unordered multimap contains following elements
Element [e : 5] is in 2 bucket.
Element [a : 1] is in 9 bucket.
Element [b : 2] is in 10 bucket.
Element [c : 3] is in 0 bucket.
Element [d : 4] is in 1 bucket.
unordered_map.htm
Advertisements