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.

引數



返回值

The current amount of buckets.

成員型別size_type是一種無符號整型型別。

示例

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;
}

可能的輸出
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]


複雜度

常量。

迭代器有效性

沒有變化。

另見