public member function
<unordered_set>

std::unordered_set::bucket

size_type bucket ( const key_type& k ) const;
Locate element's bucket
Returns the bucket number where the element with value k is located.

A bucket is a slot in the container's internal hash table to which elements are assigned based on their hash value. Buckets are numbered from 0 to (bucket_count-1).

Individual elements in a bucket can be accessed by means of the range iterators returned by unordered_set::begin and unordered_set::end.

Parameters

k
Value whose bucket is to be located.
Member type key_type is the type of the elements in the container. In unordered_set containers it is the same as value_type, defined as an alias of the class's first template parameter (Key).

Return value

The order number of the bucket corresponding to k.

Member type size_type is an unsigned integral type.

Example

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

Possible output:
ice is in bucket #0
foam is in bucket #2
sand is in bucket #2
water is in bucket #4


Complexity

Constant.

Iterator validity

No changes.

See also