std::unordered_set<Key,Hash,KeyEqual,Allocator>::unordered_set
unordered_set() : unordered_set( size_type(/*definido por la implementacin*/) ) {}
explicit unordered_set( size_type bucket_count,
{{#pad:|22}} const Hash& hash = Hash(),
{{#pad:|22}} const key_equal& equal = key_equal(),
{{#pad:|22}} const Allocator& alloc = Allocator() );
|
(1) | (desde C++11) |
unordered_set( size_type bucket_count,
{{#pad:|13}} const Allocator& alloc )
{{#pad:|13}} : unordered_set(bucket_count, Hash(), key_equal(), alloc) {}
unordered_set( size_type bucket_count,
{{#pad:|13}} const Hash& hash,
{{#pad:|13}} const Allocator& alloc )
{{#pad:|13}} : unordered_set(bucket_count, hash, key_equal(), alloc) {}
|
(1) | (desde C++14) |
explicit unordered_set( const Allocator& alloc );
|
(1) | (desde C++11) |
template< class InputIt >
unordered_set( InputIt first, InputIt last,
{{#pad:|13}} size_type bucket_count = /*definido por la implementacin*/,
{{#pad:|13}} const Hash& hash = Hash(),
{{#pad:|13}} const key_equal& equal = key_equal(),
{{#pad:|13}} const Allocator& alloc = Allocator() );
|
(2) | (desde C++11) |
template< class InputIt >
unordered_set( InputIt first, InputIt last,
{{#pad:|13}} size_type bucket_count,
{{#pad:|13}} const Allocator& alloc )
{{#pad:|13}} : unordered_set(first, last,
{{#pad:|17}} bucket_count, Hash(), key_equal(), alloc) {}
|
(2) | (desde C++14) |
template< class InputIt >
unordered_set( InputIt first, InputIt last,
{{#pad:|13}} size_type bucket_count,
{{#pad:|13}} const Hash& hash,
{{#pad:|13}} const Allocator& alloc )
{{#pad:|13}} : unordered_set(first, last,
{{#pad:|17}} bucket_count, hash, key_equal(), alloc) {}
|
(2) | (desde C++14) |
unordered_set( const unordered_set& other );
|
(3) | (desde C++11) |
unordered_set( const unordered_set& other, const Allocator& alloc );
|
(3) | (desde C++11) |
unordered_set( unordered_set&& other );
|
(4) | (desde C++11) |
unordered_set( unordered_set&& other, const Allocator& alloc );
|
(4) | (desde C++11) |
unordered_set( std::initializer_list<value_type> init,
{{#pad:|13}} size_type bucket_count = /*definido por la implementacin*/,
{{#pad:|13}} const Hash& hash = Hash(),
{{#pad:|13}} const key_equal& equal = key_equal(),
{{#pad:|13}} const Allocator& alloc = Allocator() );
|
(5) | (desde C++11) |
unordered_set( std::initializer_list<value_type> init,
{{#pad:|13}} size_type bucket_count,
{{#pad:|13}} const Allocator& alloc )
{{#pad:|13}} : unordered_set(init, bucket_count,
{{#pad:|17}} Hash(), key_equal(), alloc) {}
|
(5) | (desde C++14) |
unordered_set( std::initializer_list<value_type> init,
{{#pad:|13}} size_type bucket_count,
{{#pad:|13}} const Hash& hash,
{{#pad:|13}} const Allocator& alloc )
{{#pad:|13}} : unordered_set(init, bucket_count,
{{#pad:|17}} hash, key_equal(), alloc) {}
|
(5) | (desde C++14) |
Construye un nuevo contenedor a partir de una variedad de fuentes de datos. Opcionalmente utiliza una cuenta de depsitos, bucket_count, suministrada por el usuario como el nmero mnimo de depsitos a crear, hash como la funcin de dispersin, equal como la funcin para comparar claves y alloc como el asignador de memoria.
max_load_factor() a 1.0. Para el constructor por defecto, el nmero de depsitos est definido por la implementacin.[first, last). Establece max_load_factor() a 1.0. Si varios elementos en el rango tienen claves que se comparan equivalentes, no se especifica qu elemento se inserta (pendiente de la resolucin de LWG2844).other, tambin copia el factor de carga, el predicado, y la funcin de dispersin. Si no se proporciona alloc, el asignador de memoria se obtiene llamando a std::allocator_traits<allocator_type>::select_on_container_copy_construction(other.get_allocator()).
|
El parmetro de plantilla |
(desde C++23) |
other usando la semntica de movimiento. Si no se proporciona alloc el asignador de memoria se obtiene mediante la construccn por movimiento del asignador que pertenece a other.
|
El parmetro de plantilla |
(desde C++23) |
init, lo mismo que unordered_set(init.begin(), init.end()).Parmetros
| alloc | - | Asignador de memoria a usar para todas las asignaciones de memoria de este contenedor. |
| bucket_count | - | Nmero mnimo de depsitos a usar en la inicializacin. Si no se especifica, se usa el valor por defecto definido por la implementacin. |
| hash | - | Funcin de dispersin a usar. |
| equal | - | Funcin de comparacin a usar para todas las comparaciones de claves de este contenedor. |
| first, last | - | El rango del cual copiar los elementos. |
| other | - | Otro contenedor a usar como fuente con el cual inicializar los elementos del contenedor. |
| init | - | Lista de inicializadores con la cual inicializar los elementos del contenedor. |
| Requisitos de tipo | ||
-InputIt debe satisfacer los requisitos de InputIterator.
| ||
Complejidad
first y last.other.alloc y alloc != other.get_allocator(), entonces lineal.init.Excepciones
Las llamadas a Allocator::allocate pueden lanzar.
Notas
Despus de la construccin por movimiento de un contenedor (la sobrecarga (4)), las referencias, punteros e iteradores (aparte del iterador al final) a other permanecen vlidos, pero se refieren a los elementos que ahora se encuentran en *this. El estndar actual da esta garanta va la generalizacin en [container.requirements.general]/12, y una garanta ms directa est bajo consideracin va LWG 2321.
Aunque no se requiere formalmente hasta C++23, algunas implementaciones ya han puesto el parmetro de plantilla Allocator en los contextos no deducidos en modalidades ms tempranas.
Ejemplo
| Esta seccin est incompleta Razn: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estndares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento segn lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2193 | C++11 | El constructor por defecto es explicit.
|
Se hizo no explicit.
|
Vase tambin
(C++11) |
Asigna valores al contenedor. (funcin miembro pblica) |