public member function
<unordered_map>

std::unordered_multimap::bucket

size_type bucket ( const key_type& k ) const;
Locate element's bucket
Returns the bucket number where the elements with key k are located.

A bucket is a slot in the container's internal hash table to which elements are assigned based on the hash value of their key. Elements with the same key are located in the same bucket. Buckets are numbered from 0 to (bucket_count-1).

Individual elements in a bucket can be accessed by means of the range iterators returned by unordered_multimap::begin and unordered_multimap::end.

Parameters

k
Key whose bucket is to be located.
Member type key_type is the type of the keys for the elements in the container, defined in unordered_multimap as an alias of its first template parameter (Key).

Return value

The order number of the bucket corresponding to k.

Member type size_type is an unsigned integral type.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// unordered_multimap::bucket
#include <iostream>
#include <string>
#include <unordered_map>

int main ()
{
  std::unordered_multimap<std::string,std::string> myumm = {
    {"John","Middle East"},
    {"John","Africa"},
    {"Adam","Europe"},
    {"Bill","Norh-America"}
  };

  for (auto& x: myumm) {
    std::cout << "Element [" << x.first << ":" << x.second << "]";
    std::cout << " is in bucket #" << myumm.bucket (x.first) << std::endl;
  }

  return 0;
}


Possible output:
Element [Adam:Europe] is in bucket #1
Element [John:Middle East] is in bucket #1
Element [John:Africa] is in bucket #1
Element [Bill:North-America] is in bucket #2

Complexity

Constant.

Iterator validity

No changes.

See also