Compartir a través de


unordered_multiset Class

La clase de plantilla describe un objeto que controla una secuencia de la variar-longitud de elementos de const Keyescrito.La secuencia está ordenada débil por una función hash, que las particiones la secuencia en un conjunto ordenado subsecuencias denominado depósitos.Dentro de cada depósito una función de comparación determina si algún par de elementos tiene ordenación equivalente.Cada elemento actúa como un criterio de ordenación y valor.La secuencia se representan de forma que permita búsqueda, la inserción, y la eliminación de un elemento arbitrario con varias operaciones que pueden ser independiente del número de elementos de la secuencia (tiempo constante), por lo menos cuando todos los sectores son de longitud aproximadamente igual.En el peor de los casos, cuando todos los elementos están en un depósito, el número de operaciones es proporcional al número de elementos de la secuencia (tiempo lineal).Por otra parte, inserta un elemento no invalida ningún iterador, y quitar un elemento reemplaza solo los iteradores que señalan en el elemento quitado.

template<class Key,
    class Hash = std::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<Key> >
    class unordered_multiset;

Parámetros

Parámetro

Descripción

Key

cierre el tipo.

Hash

el tipo de objeto de la función hash.

Pred

El tipo de objeto de la función de comparación de igualdad.

Alloc

La clase de asignador.

Members

definición de tipo

Descripción

unordered_multiset::allocator_type

El tipo de un asignador para administrar el almacenamiento.

unordered_multiset::const_iterator

el tipo de un iterador constante para la secuencia controlada.

unordered_multiset::const_local_iterator

El tipo de un iterador constante de depósito para la secuencia controlada.

unordered_multiset::const_pointer

el tipo de un puntero constante a un elemento.

unordered_multiset::const_reference

el tipo de una referencia constante a un elemento.

unordered_multiset::difference_type

El tipo de una distancia firmados entre dos elementos.

unordered_multiset::hasher

el tipo de la función hash.

unordered_multiset::iterator

el tipo de un iterador para la secuencia controlada.

unordered_multiset::key_equal

El tipo de la función de comparación.

unordered_multiset::key_type

El tipo de una clave de ordenación.

unordered_multiset::local_iterator

El tipo de un iterador de depósito para la secuencia controlada.

unordered_multiset::pointer

el tipo de un puntero a un elemento.

unordered_multiset::reference

el tipo de una referencia a un elemento.

unordered_multiset::size_type

el tipo de una distancia sin signo entre dos elementos.

unordered_multiset::value_type

el tipo de un elemento.

Función miembro

Descripción

unordered_multiset::begin

Designa el principio de la secuencia controlada.

unordered_multiset::bucket

Obtiene el número de depósito por un valor de clave.

unordered_multiset::bucket_count

obtiene el número de depósitos.

unordered_multiset::bucket_size

Obtiene el tamaño de un depósito.

unordered_multiset::cbegin

Designa el principio de la secuencia controlada.

unordered_multiset::cend

Designa el final de la secuencia controlada.

unordered_multiset::clear

quita todos los elementos.

unordered_multiset::count

Busca el número de elementos que coinciden con una clave especificada.

unordered_multiset::emplace

Agrega un elemento construido en contexto.

unordered_multiset::emplace_hint

Agrega un elemento construido en contexto, con sugerencia.

unordered_multiset::empty

Comprueba si no hay elementos presentes.

unordered_multiset::end

Designa el final de la secuencia controlada.

unordered_multiset::equal_range

Encuentra el intervalo que coincide con una clave especificada.

unordered_multiset::erase

Quita los elementos en las posiciones especificadas.

unordered_multiset::find

Busca un elemento que coincida con una clave especificada.

unordered_multiset::get_allocator

Obtiene el objeto almacenado de asignador.

unordered_multiset::hash_function

obtiene el objeto almacenado de la función hash.

unordered_multiset::insert

agrega elementos.

unordered_multiset::key_eq

Obtiene el objeto almacenado de la función de comparación.

unordered_multiset::load_factor

Cuenta los elementos multimedia por el depósito.

unordered_multiset::max_bucket_count

obtiene el número máximo de depósitos.

unordered_multiset::max_load_factor

Obtiene o establece elementos máximos por el depósito.

unordered_multiset::max_size

obtiene el tamaño máximo de la secuencia controlada.

unordered_multiset::rehash

Recompila la tabla hash.

unordered_multiset::size

Cuenta el número de elementos.

unordered_multiset::swap

Intercambia el contenido de dos contenedores.

unordered_multiset::unordered_multiset

construye un objeto contenedor.

Operador

Descripción

unordered_multiset::operator=

copia una tabla hash.

Comentarios

El objeto pide la secuencia que controla llamando a dos objetos almacenados, un objeto de la función de comparación de unordered_multiset::key_equal escrito y un objeto de función hash de unordered_multiset::hasherescrito.Tiene acceso al primer objeto almacenado llamando a la función unordered_multiset::key_eq()miembro; y tiene acceso al segundo objeto almacenado llamando a la función unordered_multiset::hash_function()miembro.Específicamente, todos los valores X y Y de Keyescrita, la llamada key_eq()(X, Y) solo devuelve true si los dos valores de argumento tienen orden equivalente; la llamada hash_function()(keyval) produce una distribución de valores de size_tescrito.A diferencia de la clase de plantilla unordered_set Class, un objeto de clase de plantilla unordered_multiset no garantiza que key_eq()(X, Y) siempre false para los dos elementos de la secuencia controlada.(Las claves no sean únicas.)

El objeto también almacena un factor de carga máxima, que especifica el promedio deseado máximo de elementos en el depósito.Si insertar un elemento hace unordered_multiset::load_factor() supere el factor de carga máxima, el contenedor aumenta el número de depósitos y recompile la tabla hash según sea necesario.

El orden real de elementos de la secuencia controlada depende de la función hash, de la función de comparación, el orden de inserción, el factor de carga máxima, y el número actual de depósitos.No puede en general predecir el orden de elementos de la secuencia controlada.Puede ser siempre de confianza, sin embargo, que cualquier subconjunto de elementos que tengan el orden equivalente se adyacente en la secuencia controlada.

El objeto asigna y libera el almacenamiento de la secuencia que controla a través de un objeto almacenado el asignador de unordered_multiset::allocator_typeescrito.Este tipo de objeto del asignador debe tener la misma interfaz externa que un objeto de clase de plantilla allocator.Observe que el objeto almacenado de asignador no se copie cuando se asigna el objeto contenedor.

Requisitos

encabezado: <unordered_set>

espacio de nombres: std

Vea también

Referencia

<unordered_set>

unordered_multiset Class

Otros recursos

miembros de <unordered_set>