public member function
<unordered_set>

std::unordered_set::bucket

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

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

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

参数

k
要定位其桶的值。
成员类型key_type是容器中元素的类型。在 unordered_set 容器中,它与value_type相同,定义为类模板参数的别名().

返回值

k 对应的桶的顺序号。

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

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// unordered_set::bucket
#include <iostream>
#include <string>
#include <unordered_set>

int main ()
{
  std::unordered_set<std::string> myset = {"water","sand","ice","foam"};

  for (const std::string& x: myset) {
    std::cout << x << " is in bucket #" << myset.bucket(x) << std::endl;
  }

  return 0;
}

可能的输出
ice is in bucket #0
foam is in bucket #2
sand is in bucket #2
water is in bucket #4


复杂度

常量。

迭代器有效性

没有变化。

另见