Compartir a través de


hash_compare Class

La clase de plantilla describe un objeto que se puede utilizar en los contenedores asociativos hash cualquiera de los — hash_map, hash_multimap, hash_set, o hash_multiset (como un objeto de parámetro predeterminado de rasgos para secuenciar y hash elementos que contienen.

template<class Key, class Traits = less<Key> >
   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 asociativa hash almacena un objeto de los rasgos hash de rasgos tipo (un parámetro de plantilla).Puede derivar una clase de una especialización de hash_compare reemplazar selectivamente ciertos funciones y objetos, o puede proporcionar dispone de la versión de esta clase si se cumplen ciertos requisitos mínimos.Específicamente, para un hash_comp del objeto de hash_compare <Clave, rasgos> escrito, el comportamiento siguiente es requerido por los contenedores anteriores:

  • Todos los valores _Key de Claveescrita, la llamada hash_comp(_Key) actúa como función hash, que produce una distribución de valores de size_tescrito.la función proporcionada por el hash_compare devuelve _Key.

  • Cualquier valor _Key1 de Clave tipo que preceda _Key2 en la secuencia y tiene el mismo valor hash (valor devuelto por la función hash), hash_comp(_Key2, _Key1) es false.La función debe imponer orden total en valores de Claveescrito.La función proporcionada por el hash_compare devuelve comp(_Key2, _Key1), donde un objeto comp almacenado de rasgos con el que se puede especificar cuando se construye el hash_comp del objeto.para el tipo de parámetro predeterminado menos <Clave> de rasgos , los criterios de ordenación nunca disminuyen en valor.

  • La constante entera bucket_size especifica el número incorrecto 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 el hash_compare es 4.

  • la constante entera min_buckets especifica el número mínimo de depósitos para mantener en la tabla hash.Debe ser una potencia de dos y mayor que cero.el valor proporcionado por el hash_compare es 8.

En Visual C++ .NET 2003, los miembros de los archivos de encabezado de <hash_map> y de <hash_set> ya no están en el espacio de nombres std, pero se han movido bastante al espacio de nombres stdext.Vea El espacio de nombres stdext para obtener más información.

Ejemplo

Vea los ejemplos de hash_map:: hash_map, hash_multimap:: hash_multimap, hash_set:: hash_set, y hash_multiset:: hash_multiset, para obtener ejemplos de cómo declarar y utilizar el hash_compare.

Requisitos

encabezado: <hash_map>

espacio de nombres: stdext

Vea también

Referencia

Seguridad para subprocesos de la biblioteca estándar de C++

Biblioteca de plantillas estándar

Otros recursos

miembros de <hash_map>

miembros de <hash_set>