Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O modelo de classe descreve um objeto que pode ser usado por qualquer um dos contêineres associativos de hash — hash_map, hash_multimap, hash_set ou hash_multiset — como um objeto de parâmetro Traits padrão para ordenar e fazer o hash dos elementos contidos.
Sintaxe
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 associativo de hash armazena um objeto de características de hash do tipo Traits (um parâmetro de modelo). Você pode derivar uma classe de uma especialização de hash_compare para substituir seletivamente determinadas funções e objetos ou pode fornecer sua própria versão dessa classe se atender a certos requisitos mínimos. Especificamente, para um objeto hash_comp do tipo hash_compare<Key, Traits>, o seguinte comportamento é necessário para os contêineres acima:
Para todos os valores
keydo tipoKey, a chamada hash_comp(key) serve como uma função de hash, que produz uma distribuição de valores do tiposize_t. A função fornecida por hash_compare retornakey.Para qualquer valor
key1do tipoKeyque precedekey2na sequência e tem o mesmo valor de hash (valor retornado pela função de hash), hash_comp(key2,key1) é falso. A função deve impor um ordenamento total de valores do tipoKey. A função fornecida por hash_compare retorna comp(key2,key1),, em que comp é um objeto armazenado do tipoTraitsque você pode especificar quando constrói o objeto hash_comp. Para o tipo de parâmetroTraitspadrãoless<Key>, o valor das chaves de classificação nunca diminui.A constante inteira
bucket_sizeespecifica o número médio de elementos por "bucket" (entrada de tabela de hash) que o contêiner deve tentar não ultrapassar. Ela deve ser maior que zero. O valor fornecido por hash_compare é 4.A constante inteira
min_bucketsespecifica o número mínimo de buckets a serem mantidos na tabela de hash. Ela deve ser uma potência de dois e maior que zero. O valor fornecido por hash_compare é 8.
Exemplo
Veja exemplos de hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set e hash_multiset::hash_multiset, para ver exemplos de como declarar e usar hash_compare.
Requisitos
Cabeçalho:<hash_map>
Namespace: stdext
Confira também
Acesso Thread-Safe na Biblioteca Padrão C++
Referência da biblioteca padrão C++