classe hash_compare

O modelo de classe descreve um objeto que pode ser usado por qualquer um dos contentores associativos de hash — hash_map, hash_multimap, hash_set ou hash_multiset — como um objeto padrão do parâmetro Traits para ordenar e fazer hash dos elementos que contêm.

Note

hash_compare foi removido no MSVC Build Tools 14.51

Syntax

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

Remarks

Cada contentor associativo de hash armazena um objeto de características de hash do tipo Traits (um parâmetro de template). Podes derivar uma classe a partir de uma especialização de hash_compare para sobrescrever seletivamente certas funções e objetos, ou podes fornecer a tua própria versão desta classe se cumprires certos requisitos mínimos. Especificamente, para um objeto hash_comp do tipo hash_compare<Key, Traits>, o seguinte comportamento é exigido pelos contentores acima:

  • Para todos os valores key de tipo Key, a chamada hash_comp()key serve como uma função de hash, que produz uma distribuição de valores de tipo size_t. A função fornecida por hash_compare devolve key.

  • Para qualquer valor key1 do tipo Key que preceda key2 a sequência e tenha o mesmo valor de hash (valor devolvido pela função de hash), hash_comp(key2, key1) é falso. A função deve impor uma ordenação total aos valores do tipo Key. A função fornecida por hash_compare devolve comp(key2, key1), , onde comp é um objeto armazenado de tipo Traits que pode especificar quando constrói o objeto hash_comp. Para o tipo less<Key>de parâmetro predefinido Traits , as chaves de ordenação nunca diminuem de valor.

  • A constante bucket_size inteira especifica o número médio de elementos por "balde" (entrada de tabela hash) que o contentor deve tentar não ultrapassar. Tem de ser maior que zero. O valor fornecido por hash_compare é 4.

  • A constante min_buckets inteira especifica o número mínimo de baldes a manter na tabela hash. Deve ser uma potência de dois e maior que zero. O valor fornecido por hash_compare é 8.

Exemplo

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

Requirements

Cabeçalho:<hash_map>

Espaço de nomes:stdext

Ver também

segurança de threads na biblioteca padrão C++
Referência da Biblioteca Padrão C++