公共成员类型
<unordered_map>

std::unordered_map::bucket_size

size_type bucket_size ( size_type n ) const;
返回桶的大小
返回桶 n 中的元素数量。

桶是容器内部哈希表中的一个槽,元素根据其键的哈希值被分配到该槽中。

桶中的元素数量会影响访问桶中特定元素所需的时间。容器会自动增加桶的数量,以使 load_factor(即平均桶大小)低于其 max_load_factor

参数

n
桶编号。
此值应小于 bucket_count
成员类型size_type是一种无符号整型类型。

返回值

n 中的元素数量。

成员类型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
// unordered_map::bucket_size
#include <iostream>
#include <string>
#include <unordered_map>

int main ()
{
  std::unordered_map<std::string,std::string> mymap = {
    {"us","United States"},
    {"uk","United Kingdom"},
    {"fr","France"},
    {"de","Germany"}
  };

  unsigned nbuckets = mymap.bucket_count();

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

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

  return 0;
}

可能的输出
mymap has 5 buckets:
bucket #0 has 0 elements.
bucket #1 has 1 elements.
bucket #2 has 2 elements.
bucket #3 has 0 elements.
bucket #4 has 1 elements.


复杂度

线性于桶的大小。

迭代器有效性

没有变化。

另见