hash_compare (Clase)
La clase de plantilla describe un objeto que se puede usar con cualquiera de los contenedores asociativos hash (hash_map, hash_multimap, hash_set o hash_multiset) como un objeto de parámetro Traits predeterminado para ordenar y aplicar algoritmos hash a los elementos que contienen.
Sintaxis
class hash_compare
{
Traits comp;
public:
const size_t bucket_size = 4;
const size_t min_buckets = 8;
hash_compare();
hash_compare(Traits pred);
size_t operator()(const Key& key) const;
bool operator()(
const Key& key1,
const Key& key2) const;
};
Comentarios
Cada contenedor asociativo de hash almacena un objeto traits hash de tipo Traits
(un parámetro de plantilla). Puede derivar una clase de una especialización de hash_compare para reemplazar de forma selectiva ciertas funciones y objetos o puede proporcionar su propia versión de esta clase si cumple ciertos requisitos mínimos. En concreto, para un objeto hash_comp de tipo hash_compare<Key, Traits>
, los contenedores anteriores requieren el siguiente comportamiento:
Para todos los valores
key
de tipoKey
, la llamada hash_comp(key
) actúa como una función hash, que produce una distribución de valores de tiposize_t
. La función suministrada por hash_compare devuelvekey
.Para cualquier valor
key1
de tipoKey
que preceda akey2
en la secuencia y que tenga el mismo valor hash (valor devuelto por la función hash), hash_comp(key2
,key1
) es False. La función debe imponer una ordenación total en los valores de tipoKey
. La función proporcionada por hash_compare devuelve comp(key2
,key1
),
donde comp es un objeto almacenado de tipoTraits
que puede especificar al construir el objeto hash_comp. Para el tipo de parámetroTraits
predeterminadoless<Key>
, las claves de ordenación nunca disminuyen en valor.La constante entera
bucket_size
especifica el número medio de elementos por "depósito" (entrada de tabla hash) que el contenedor debe intentar no superar. Debe ser mayor que cero. El valor proporcionado por hash_compare es 4.La constante entera
min_buckets
especifica el número mínimo de depósitos que se deben mantener en la tabla hash. Debe ser una potencia de dos y mayor que cero. El valor proporcionado por hash_compare es 8.
Ejemplo
Vea los ejemplos de hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set y hash_multiset::hash_multiset para ver ejemplos sobre cómo declarar y usar hash_compare.
Requisitos
Encabezado:<hash_map>
Espacio de nombres: stdext
Consulte también
Seguridad para subprocesos en la biblioteca estándar de C++
Referencia de biblioteca estándar de C++