Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
keyde tipoKey, a chamada hash_comp()keyserve como uma função de hash, que produz uma distribuição de valores de tiposize_t. A função fornecida por hash_compare devolvekey.Para qualquer valor
key1do tipoKeyque precedakey2a 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 tipoKey. A função fornecida por hash_compare devolve comp(key2,key1),,onde comp é um objeto armazenado de tipoTraitsque pode especificar quando constrói o objeto hash_comp. Para o tipoless<Key>de parâmetro predefinidoTraits, as chaves de ordenação nunca diminuem de valor.A constante
bucket_sizeinteira 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_bucketsinteira 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++