公共成员函数
<unordered_map>

std::unordered_map::bucket

size_type bucket ( const key_type& k ) const;
定位元素的桶
返回键值为 k 的元素所在的桶编号。

桶是容器内部哈希表的一个槽,元素根据其键的哈希值被分配到其中。桶的编号从 0 到0(bucket_count-1).

可以通过 unordered_map::beginunordered_map::end 返回的范围迭代器来访问桶中的单个元素。

参数

k
要查找其桶的键。
成员类型key_type是容器中元素的键的类型,在 unordered_map 中定义为其第一个模板参数的别名().

返回值

k 对应的桶的顺序号。

成员类型size_type是一种无符号整型类型。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// unordered_map::bucket
#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"}
  };

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

  return 0;
}

可能的输出
Element [us:United States] is in bucket #1
Element [de:Germany] is in bucket #2
Element [fr:France] is in bucket #2
Element [uk:United Kingdom] is in bucket #4


复杂度

常量。

迭代器有效性

没有变化。

另见