Compartir vía


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 tipo Key, la llamada hash_comp(key) actúa como una función hash, que produce una distribución de valores de tipo size_t. La función suministrada por hash_compare devuelve key.

  • Para cualquier valor key1 de tipo Key que preceda a key2 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 tipo Key. La función proporcionada por hash_compare devuelve comp(key2, key1) , donde comp es un objeto almacenado de tipo Traits que puede especificar al construir el objeto hash_comp. Para el tipo de parámetro Traits predeterminado less<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++