std::unordered_multiset<Key,Hash,KeyEqual,Allocator>::unordered_multiset
unordered_multiset() : unordered_multiset( size_type(/*definido por la implementación*/) ) {} explicit unordered_multiset( size_type bucket_count, {{#pad:|27}} const Hash& hash = Hash(), {{#pad:|27}} const key_equal& equal = key_equal(), {{#pad:|27}} const Allocator& alloc = Allocator() ); |
(1) | (desde C++11) |
unordered_multiset( size_type bucket_count, {{#pad:|18}} const Allocator& alloc ) {{#pad:|18}} : unordered_multiset(bucket_count, Hash(), key_equal(), alloc) {} unordered_multiset( size_type bucket_count, {{#pad:|18}} const Hash& hash, {{#pad:|18}} const Allocator& alloc ) {{#pad:|18}} : unordered_multiset(bucket_count, hash, key_equal(), alloc) {} |
(1) | (desde C++14) |
explicit unordered_multiset( const Allocator& alloc ); |
(1) | (desde C++11) |
template< class InputIt > unordered_multiset( InputIt first, InputIt last, {{#pad:|18}} size_type bucket_count = /*definido por la implementación*/, {{#pad:|18}} const Hash& hash = Hash(), {{#pad:|18}} const key_equal& equal = key_equal(), {{#pad:|18}} const Allocator& alloc = Allocator() ); |
(2) | (desde C++11) |
template< class InputIt > unordered_multiset( InputIt first, InputIt last, {{#pad:|18}} size_type bucket_count, {{#pad:|18}} const Allocator& alloc ) {{#pad:|18}} : unordered_multiset(first, last, {{#pad:|22}} bucket_count, Hash(), key_equal(), alloc) {} |
(2) | (desde C++14) |
template< class InputIt > unordered_multiset( InputIt first, InputIt last, {{#pad:|18}} size_type bucket_count, {{#pad:|18}} const Hash& hash, {{#pad:|18}} const Allocator& alloc ) {{#pad:|18}} : unordered_multiset(first, last, {{#pad:|22}} bucket_count, hash, key_equal(), alloc) {} |
(2) | (desde C++14) |
unordered_multiset( const unordered_multiset& other ); |
(3) | (desde C++11) |
unordered_multiset( const unordered_multiset& other, const Allocator& alloc ); |
(3) | (desde C++11) |
unordered_multiset( unordered_multiset&& other ); |
(4) | (desde C++11) |
unordered_multiset( unordered_multiset&& other, const Allocator& alloc ); |
(4) | (desde C++11) |
unordered_multiset( std::initializer_list<value_type> init, {{#pad:|18}} size_type bucket_count = /*definido por la implementación*/, {{#pad:|18}} const Hash& hash = Hash(), {{#pad:|18}} const key_equal& equal = key_equal(), {{#pad:|18}} const Allocator& alloc = Allocator() ); |
(5) | (desde C++11) |
unordered_multiset( std::initializer_list<value_type> init, {{#pad:|18}} size_type bucket_count, {{#pad:|18}} const Allocator& alloc ) {{#pad:|18}} : unordered_multiset(init, bucket_count, {{#pad:|22}} Hash(), key_equal(), alloc) {} |
(5) | (desde C++14) |
unordered_multiset( std::initializer_list<value_type> init, {{#pad:|18}} size_type bucket_count, {{#pad:|18}} const Hash& hash, {{#pad:|18}} const Allocator& alloc ) {{#pad:|18}} : unordered_multiset(init, bucket_count, {{#pad:|22}} 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 depósitos, bucket_count, suministrada por el usuario como el número mínimo de depósitos a crear, hash como la función de dispersión, equal como la función para comparar claves y alloc como el asignador de memoria.
max_load_factor() a 1.0. Para el constructor por defecto, el número de depósitos está definido por la implementación.[first, last). Establece max_load_factor() a 1.0. other, también copia el factor de carga, el predicado, y la función de dispersión. 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 parámetro de plantilla |
(desde C++23) |
other usando la semántica de movimiento. Si no se proporciona alloc el asignador de memoria se obtiene mediante la construccón por movimiento del asignador que pertenece a other.
|
El parámetro de plantilla |
(desde C++23) |
init, lo mismo que unordered_multiset(init.begin(), init.end()).Parámetros
| alloc | - | Asignador de memoria a usar para todas las asignaciones de memoria de este contenedor. |
| bucket_count | - | Número mínimo de depósitos a usar en la inicialización. Si no se especifica, se usa el valor por defecto definido por la implementación. |
| hash | - | Función de dispersión a usar. |
| equal | - | Función de comparación 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
Después de la construcción por movimiento de un contenedor (la sobrecarga (4)), las referencias, punteros e iteradores (aparte del iterador al final) a other permanecen válidos, pero se refieren a los elementos que ahora se encuentran en *this. El estándar actual da esta garantía vía la generalización en [container.requirements.general]/12, y una garantía más directa está bajo consideración vía LWG 2321.
Aunque no se requiere formalmente hasta C++23, algunas implementaciones ya han puesto el parámetro de plantilla Allocator en los contextos no deducidos en modalidades más tempranas.
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2193 | C++11 | El constructor por defecto es explicit.
|
Se hizo no explicit.
|
Véase también
(C++11) |
Asigna valores al contenedor. (función miembro pública) |