# Bucket Interface

The bucket interface is similar to the bucket interface for the C++11 class `unordered_set` and `unordered_multiset`, except that the prefix `unsafe_` has been added as a reminder that the methods are unsafe to use during concurrent insertion.

### Caution

The bucket interface is intended for debugging. It is not concurrency safe.

The mapping of keys to buckets is implementation specific.

Buckets are numbered from 0 to`unsafe_bucket_count()-1`. To iterate over a bucket use a `local_iterator` or `const_local_iterator`.

The following table provides additional information on the members of this template class.
Member | Description
--- | ---
size_type unsafe_bucket_count() const | Returns: Number of buckets.
size_type unsafe_max_bucket_count() const | Returns: Upper bound on possible number of buckets.
size_type unsafe_bucket_size(size_type n) | Returns: Number of items in bucket `n`.
size_type unsafe_bucket(const key_type& k) const | Returns: Index of bucket where item with key k would be placed.
local_iterator unsafe_begin(size_type n) | Returns: `local_iterator` pointing to first item in bucket n.
const_local_iterator unsafe_begin(size_type n) const | Returns: `const_local_iterator` pointing to first item in bucket `n`.
local_iterator unsafe_end(size_type n) | Returns: `local_iterator` pointing to immediately after the last item in bucket `n`.
const_local_iterator unsafe_end(size_type n) const | Returns `const_local_iterator` pointing to immediately after the last item in bucket `n`.
const_local_iterator unsafe_cbegin(size_type n) const | Returns: `const_local_iterator` pointing to first item in bucket `n`.
const_local_iterator unsafe_cend(size_type n) const | Returns: `const_local_iterator` pointing to immediately past last item in bucket `n`.

Parent topic: concurrent_unordered_set and concurrent_unordered_multiset Template Classes