# Construct, Destroy, Copy

The following tables provides information on the members of the `concurrent_unordered_set` and `concurrent_unordered_multiset` template classes.

## `concurrent_unordered_set`

Member | Description
--- | ---
explicit concurrent_unordered_set (size_type n = implementation-defined, const hasher& hf = hasher(),const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()) | Construct table with `n` buckets.
template <typename InputIterator> concurrent_unordered_set (InputIterator first, InputIterator last, size_type n = <implementation-defined>, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()) | Construct table with `n` buckets initialized with `value_type(*i)` where `i` is in the half open interval [`first,last`).
concurrent_unordered_set(const unordered_set& m) | Construct copy of set `m`.
concurrent_unordered_set(const Alloc& a) | Construct empty set using allocator a.
concurrent_unordered_set(const unordered_set&, const Alloc& a) | Construct copy of set m using allocator `a`.
~concurrent_unordered_set() | Destroy the set.
concurrent_ unordered_set& operator=(const concurrent_unordered_set& m); | Set `*this` to a copy of set `m`.
allocator_type get_allocator() const; | Get copy of the allocator associated with `*this`.

## `concurrent_unordered_multiset`

Member | Description
--- | ---
explicit concurrent_unordered_multiset (size_type n = implementation-defined, const hasher& hf = hasher(),const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()) | Construct table with `n` buckets.
template <typename InputIterator> concurrent_unordered_multiset (InputIterator first, InputIterator last, size_type n = <implementation-defined>, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()) | Construct table with `n` buckets initialized with `value_type(*i)` where `i` is in the half open interval [`first,last`).
concurrent_unordered_multiset(const unordered_multiset& m) | Construct copy of set `m`.
concurrent_unordered_multiset(const Alloc& a) | Construct empty set using allocator a.
concurrent_unordered_multiset(const unordered_multiset&, const Alloc& a) | Construct copy of set m using allocator `a`.
~concurrent_unordered_multiset() | Destroy the set.
concurrent_ unordered_multiset& operator=(const concurrent_unordered_multiset& m); | Set `*this` to a copy of set `m`.
allocator_type get_allocator() const; | Get copy of the allocator associated with `*this`.

Parent topic: concurrent_unordered_set and concurrent_unordered_multiset Template Classes