public member function
<unordered_set>

std::unordered_multiset::bucket

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

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

桶中的单个元素可以通过 unordered_multiset::beginunordered_multiset::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
16
// unordered_multiset::bucket
#include <iostream>
#include <string>
#include <unordered_set>

int main ()
{
  std::unordered_multiset<std::string> myums =
  {"water","sand","ice","water"};

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

  return 0;
}

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


复杂度

常量。

迭代器有效性

没有变化。

另见