public member type
<unordered_map>

std::unordered_multimap::bucket_size

size_type bucket_size ( size_type n ) const;
Return bucket_size
Returns the number of elements in bucket n.

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.

The number of elements in a bucket influences the time it takes to access a particular element in the bucket. The container automatically increases the number of buckets to keep the load factor (which is the average bucket size) below its max_load_factor.

Parameters

n
Bucket number.
This shall be lower than bucket_count.
Member type size_type is an unsigned integral type.

Return Value

The number of elements in bucket n.

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
22
23
24
// unordered_multimap::bucket_size
#include <iostream>
#include <string>
#include <unordered_map>

int main ()
{
  std::unordered_multimap<std::string,std::string> myumm = {
    {"John","Alpha"},
    {"Alfred","Beta"},
    {"Thomas","Gamma"},
    {"John","Delta"}
  };

  unsigned nbuckets = myumm.bucket_count();

  std::cout << "myumm has " << nbuckets << " buckets:\n";

  for (unsigned i=0; i<nbuckets; ++i) {
    std::cout << "bucket #" << i << " has " << myumm.bucket_size(i) << " elements.\n";
  }

  return 0;
}

Possible output:
myumm has 5 buckets:
bucket #0 has 0 elements.
bucket #1 has 3 elements.
bucket #2 has 0 elements.
bucket #3 has 0 elements.
bucket #4 has 1 elements.


Complexity

Linear in the bucket size.

Iterator validity

No changes.

See also