unordered_set 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_set;
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 |
El tipo de un asignador para administrar el almacenamiento. |
|
el tipo de un iterador constante para la secuencia controlada. |
|
El tipo de un iterador constante de depósito para la secuencia controlada. |
|
el tipo de un puntero constante a un elemento. |
|
el tipo de una referencia constante a un elemento. |
|
El tipo de una distancia firmados entre dos elementos. |
|
el tipo de la función hash. |
|
el tipo de un iterador para la secuencia controlada. |
|
El tipo de la función de comparación. |
|
El tipo de una clave de ordenación. |
|
El tipo de un iterador de depósito para la secuencia controlada. |
|
el tipo de un puntero a un elemento. |
|
el tipo de una referencia a un elemento. |
|
el tipo de una distancia sin signo entre dos elementos. |
|
el tipo de un elemento. |
Función miembro |
Descripción |
Designa el principio de la secuencia controlada. |
|
Obtiene el número de depósito por un valor de clave. |
|
obtiene el número de depósitos. |
|
Obtiene el tamaño de un depósito. |
|
Designa el principio de la secuencia controlada. |
|
Designa el final de la secuencia controlada. |
|
quita todos los elementos. |
|
Busca el número de elementos que coinciden con una clave especificada. |
|
Agrega un elemento construido en contexto. |
|
Agrega un elemento construido en contexto, con sugerencia. |
|
Comprueba si no hay elementos presentes. |
|
Designa el final de la secuencia controlada. |
|
Encuentra el intervalo que coincide con una clave especificada. |
|
Quita los elementos en las posiciones especificadas. |
|
Busca un elemento que coincida con una clave especificada. |
|
Obtiene el objeto almacenado de asignador. |
|
obtiene el objeto almacenado de la función hash. |
|
agrega elementos. |
|
Obtiene el objeto almacenado de la función de comparación. |
|
Cuenta los elementos multimedia por el depósito. |
|
obtiene el número máximo de depósitos. |
|
Obtiene o establece elementos máximos por el depósito. |
|
obtiene el tamaño máximo de la secuencia controlada. |
|
Recompila la tabla hash. |
|
Cuenta el número de elementos. |
|
Intercambia el contenido de dos contenedores. |
|
construye un objeto contenedor. |
Operadores |
Descripción |
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_set::key_equal escrito y un objeto de función hash de unordered_set::hasherescrito.Tiene acceso al primer objeto almacenado llamando a la función unordered_set::key_eq()miembro; y tiene acceso al segundo objeto almacenado llamando a la función unordered_set::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_multiset Class, un objeto de clase de plantilla unordered_set garantiza que key_eq()(X, Y) siempre false para los dos elementos de la secuencia controlada.(Las claves son ú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_set::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_set::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