public member function
<unordered_map>

std::unordered_multimap::bucket_count

size_type bucket_count() const noexcept;
Return number of buckets
Returns the number of buckets in the unordered_multimap container.

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 buckets influences directly the load factor of the container's hash table (and thus the probability of collision). The container automatically increases the number of buckets to keep the load factor below a specific threshold (its max_load_factor), causing a rehash each time the number of buckets needs to be increased.

Parameters

none

Return Value

The current amount of buckets.

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
25
26
27
28
// unordered_multimap::bucket_count
#include <iostream>
#include <string>
#include <unordered_map>

int main ()
{
  std::unordered_multimap<std::string,std::string> myumm = {
       {"bed","bedroom"},
       {"oven","kitchen"},
       {"towel","bathroom"},
       {"towel","beach"},
       {"plant","garden"}
  };

  unsigned n = myumm.bucket_count();

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

  for (unsigned i=0; i<n; ++i) {
    std::cout << "bucket #" << i << " contains: ";
    for (auto it = myumm.begin(i); it!=myumm.end(i); ++it)
      std::cout << "[" << it->first << ":" << it->second << "] ";
    std::cout << "\n";
  }

  return 0;
}


Possible output:
myumm has 5 buckets.
bucket #0 contains: [towel:bathroom] [towel:beach]
bucket #1 contains: [plant:garden]
bucket #2 contains: 
bucket #3 contains: 
bucket #4 contains: [oven:kitchen] [bed:bedroom]

Complexity

Constant.

Iterator validity

No changes.

See also

  • 9316991614 2018-02-25
  • 191841613 2018-02-25
  • 16411612 2018-02-25
  • 6081981611 2018-02-25
  • 1784561610 2018-02-25
  • 4651609 2018-02-25
  • 9348111608 2018-02-25
  • 2513771607 2018-02-25
  • 6478461606 2018-02-24
  • 4985791605 2018-02-24
  • 5637141604 2018-02-24
  • 282181603 2018-02-24
  • 6217941602 2018-02-24
  • 5076141601 2018-02-24
  • 714281600 2018-02-24
  • 6607141599 2018-02-24
  • 949041598 2018-02-24
  • 6809961597 2018-02-24
  • 671871596 2018-02-24
  • 7107821595 2018-02-24