# Construct, Destroy, Copy

The following tables provide information on the members of the `concurrent_unordered_map` and `concurrent_unordered_multimap` template classes.

## `concurrent_unordered_map`

Member | Description
--- | ---
`explicit concurrent_unordered_map (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_map (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_map(const concurrent_unordered_map& m)` | Construct copy of concurrent_unordered_map `m`.
`concurrent_unordered_map(const Alloc& a)` | Construct empty concurrent_unordered_map using allocator `a`.
`concurrent_unordered_map(const concurrent_unordered_map&, const Alloc& a)` | Construct copy of concurrent_unordered_map `m` using allocator `a`.
`~concurrent_unordered_map()` | Destroy the concurrent_unordered_map.
`concurrent_ unordered_map& operator=(const concurrent_unordered_map& m);` | Set `*this` to a copy of concurrent_unordered_map `m`.
`allocator_type get_allocator() const;` | Get copy of the allocator associated with `*this`.

## `concurrent_unordered_multimap`

Member | Description
--- | ---
`explicit concurrent_unordered_multimap (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_multimap (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_multimap(const concurrent_unordered_multimap& m)` | Construct copy of concurrent_unordered_multimap `m`.
`concurrent_unordered_multimap(const Alloc& a)` | Construct empty concurrent_unordered_multimap using allocator `a`.
`concurrent_unordered_multimap(const concurrent_unordered_multimap&, const Alloc& a)` | Construct copy of concurrent_unordered_multimap `m` using allocator `a`.
`~concurrent_unordered_multimap()` | Destroy the concurrent_unordered_multimap.
`concurrent_ unordered_multimap& operator=(const concurrent_unordered_multimap& m);` | Set `*this` to a copy of concurrent_unordered_multimap `m`.
`allocator_type get_allocator() const;` | Get copy of the allocator associated with `*this`.

Parent topic: concurrent_unordered_map and concurrent_unordered_multimap Template Classes