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