##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::unordered_set::unordered_set

From cppreference.com
< cpp‎ | container‎ | unordered set

[edit template]

| (1) |
explicit unordered_set( size_type bucket_count = /*implementation-defined*/, const Hash& hash = Hash(), const KeyEqual& equal = KeyEqual(), const Allocator& alloc = Allocator() ); |  | (since C++11) (until C++14)
unordered_set() : unordered_set( size_type(/*implementation-defined*/) {} explicit unordered_set( size_type bucket_count, const Hash& hash = Hash(), const KeyEqual& equal = KeyEqual(), const Allocator& alloc = Allocator() ); |  | (since C++14)
unordered_set( size_type bucket_count, const Allocator& alloc = Allocator() ); unordered_set( size_type bucket_count, const Hash& hash, const Allocator& alloc = Allocator() ); | (1) | (since C++14)
explicit unordered_set( const Allocator& alloc ); | (1) | (since C++11)
template< class InputIt > unordered_set( InputIt first, InputIt last, size_type bucket_count = /*implementation-defined*/, const Hash& hash = Hash(), const KeyEqual& equal = KeyEqual(), const Allocator& alloc = Allocator() ); template< class InputIt > unordered_set( InputIt first, InputIt last, size_type bucket_count, const Allocator& alloc = Allocator() ); template< class InputIt > unordered_set( InputIt first, InputIt last, size_type bucket_count, const Hash& hash, const Allocator& alloc = Allocator() ); | (2) | (since C++11) (since C++14)
unordered_set( const unordered_set& other ); | (3) | (since C++11)
unordered_set( const unordered_set& other, const Allocator& alloc ); | (3) | (since C++11)
unordered_set( unordered_set&& other ); | (4) | (since C++11)
unordered_set( unordered_set&& other, const Allocator& alloc ); | (4) | (since C++11)
unordered_set( std::initializer_list<value_type> init, size_type bucket_count = /*implementation-defined*/, const Hash& hash = Hash(), const KeyEqual& equal = KeyEqual(), const Allocator& alloc = Allocator() ); unordered_set( std::initializer_list<value_type> init, size_type bucket_count, const Allocator& alloc = Allocator() ); unordered_set( std::initializer_list<value_type> init, size_type bucket_count, const Hash& hash, const Allocator& alloc = Allocator() ); | (5) | (since C++11) (since C++14)

Constructs new container from a variety of data sources. Optionally uses user supplied `bucket_count` as a minimal number of buckets to create, `hash` as the hash function, `equal` as the function to compare keys and `alloc` as the allocator.

1) Constructs empty container. Sets `max_load_factor()` to 1.0. For the default constructor, the number of buckets is implementation-defined.
2) constructs the container with the contents of the range `[first, last)`. Sets `max_load_factor()` to 1.0.
3) copy constructor. Constructs the container with the copy of the contents of `other`, copies the load factor, the predicate, and the hash function as well. If `alloc` is not provided, allocator is obtained by calling std::allocator_traits<allocator_type>::select_on_copy_construction(other).
4) move constructor. Constructs the container with the contents of `other` using move semantics. If `alloc` is not provided, allocator is obtained by move-construction from the allocator belonging to `other`.
5) constructs the container with the contents of the initializer list `init`, same as unordered_set(init.begin(), init.end()).

### [edit] Parameters

alloc | - | allocator to use for all memory allocations of this container
bucket_count | - | minimal number of buckets to use on initialization. If it is not specified, implementation-defined default value is used
hash | - | hash function to use
equal | - | comparison function to use for all key comparisons of this container
first, last | - | the range to copy the elements from
other | - | another container to be used as source to initialize the elements of the container with
init | - | initializer list to initialize the elements of the container with
Type requirements
- `InputIt` must meet the requirements of `InputIterator`.

### [edit] Complexity

1) constant
2) average case linear worst case quadratic in distance between `first` and `last`
3) linear in size of `other`
4) constant. If `alloc` is given and alloc != other.get_allocator(), then linear.
5) average case linear worst case quadratic in size of `init`

### [edit] Example

| This section is incomplete Reason: no example

### [edit] See also

operator= | assigns values to the container (public member function) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/container/unordered_set/unordered_set&oldid=50798"
Category:

- Todo no example