Compartilhar via


hash_compare Class

A classe de modelo descreve um objeto que pode ser usado por qualquer um dos recipientes associativa hash — hash_map, hash_multimap, hash_set, ou hash_multiset — como um padrão características o objeto de parâmetro para solicitar e os elementos que eles contêm de hash.

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;
   };

Comentários

Cada contêiner de associação hash armazena um objeto de características de hash do tipo características (um parâmetro de modelo).Você pode derivar uma classe de uma especialização de hash_compare para substituir seletivamente certas funções e objetos, ou você pode fornecer sua própria versão dessa classe, se você atender a certos requisitos mínimos.Especificamente, para um hash_comp de objeto do tipo hash_compare < chave, características >, é necessário o seguinte comportamento para os contêineres acima:

  • Todos os valores de _Key do tipo chave, a chamada hash_comp(_Key) serve como uma função de hash, que produz uma distribuição de valores do tipo size_t.A função fornecida pelo hash_compare retorna _Key.

  • Para qualquer valor de _Key1 do tipo chave que precede _Key2 na seqüência e tem o mesmo hash (valor retornado pela função hash), hash_comp(_Key2, _Key1) é false.A função deve impor um total de pedidos nos valores do tipo chave.A função fornecida pelo hash_compare retorna comp(_Key2, _Key1), onde comp é um objeto armazenado do tipo características que você pode especificar quando você construir o hash_comp do objeto.Para o padrão características tipo de parâmetro menos <Key>, chaves de classificação nunca diminuição do valor.

  • Constante de inteiro bucket_size Especifica o número médio de elementos por "depósito" (entrada de tabela de hash) que o contêiner deve tentar não deve exceder.Ele deve ser maior que zero.O valor fornecido pelo hash_compare é 4.

  • Constante de inteiro min_buckets Especifica o número mínimo de recipientes para manter a tabela de hash.Ele deve ser uma potência de dois e maior que zero.O valor fornecido pelo hash_compare é 8.

No Visual C++.NET 2003, os membros do <hash_map> e <hash_set> arquivos de cabeçalho não estão mais no namespace std, mas em vez disso, foram movidos para o namespace stdext.Consulte O espaço para nome do stdext para obter mais informações.

Exemplo

Ver exemplos de hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set, e hash_multiset::hash_multiset, para obter exemplos de como declarar e usar hash_compare.

Requisitos

Cabeçalho: <hash_map>

Namespace: stdext

Consulte também

Referência

Segurança do thread na biblioteca C++ padrão

Standard Template Library

Outros recursos

<hash_map> Membros

<hash_set> Membros