Partilhar via


unordered_multimap Class

A classe de modelo descreve um objeto que controles uma seqüência de variar- comprimento dos elementos de tipo std::pair<const Key, Ty>.A seqüência é ordenada fraca por uma função de hash, que dividir a seqüência em um conjunto ordenado de subsequences chamados compartimento de memória.Em cada compartimento de memória uma função de comparação determina se qualquer par de elementos tem regras equivalente.Cada elemento armazena dois objetos, uma chave de tipo e um valor.A seqüência é representada de uma maneira que permite a pesquisa, inserção, e remoção de um elemento arbitrário com um número de operações que podem ser independente do número de elementos na seqüência (tempo constantes), pelo menos quando todos os compartimento de memória são de comprimento aproximadamente iguais.Em o caso mais grave, quando todos os elementos estão em um compartimento de memória, o número de operações é proporcionalmente para o número de elementos na seqüência (tempo linear).Além de isso, inserindo um elemento não invalida nenhum iterador, e removendo um elemento invalida somente os iteradores que apontam no elemento removido.

template<class Key,
    class Ty,
    class Hash = std::tr1::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<Key> >
    class unordered_multimap;

Parâmetros

Parâmetro

Descrição

Key

O tipo de chave.

Ty

o tipo mapeado.

Hash

O tipo de objeto de função de hash.

Pred

O tipo de objeto de função de comparação de igualdade.

Alloc

A classe do distribuidor.

Membros

Definição de tipo

Descrição

unordered_multimap::allocator_type

o tipo de um distribuidor para gerenciar o armazenamento.

unordered_multimap::const_iterator

o tipo de um iterador constante para a seqüência controlada.

unordered_multimap::const_local_iterator

O tipo de um iterador constante de compartimento de memória para a seqüência controlada.

unordered_multimap::const_pointer

o tipo de um ponteiro constante a um elemento.

unordered_multimap::const_reference

O tipo de uma constante referência a um elemento.

unordered_multimap::difference_type

o tipo de uma distância assinado entre dois elementos.

unordered_multimap::hasher

O tipo de função de hash.

unordered_multimap::iterator

o tipo de um iterador para a seqüência controlada.

unordered_multimap::key_equal

O tipo de função de comparação.

unordered_multimap::key_type

O tipo de uma chave classificação.

unordered_multimap::local_iterator

O tipo de um iterador de compartimento de memória para a seqüência controlada.

unordered_multimap::mapped_type

O tipo de um valor mapeado associada a cada chave.

unordered_multimap::pointer

O tipo de um ponteiro para um elemento.

unordered_multimap::reference

o tipo de uma referência a um elemento.

unordered_multimap::size_type

O tipo de uma distância sem sinal entre dois elementos.

unordered_multimap::value_type

o tipo de um elemento.

Função de membro

Descrição

unordered_multimap::begin

Designa o início da seqüência controlada.

unordered_multimap::bucket

Obtém o número de compartimento de memória para um valor de chave.

unordered_multimap::bucket_count

Obtém o número de compartimento de memória.

unordered_multimap::bucket_size

Obtém o tamanho de um compartimento de memória.

unordered_multimap::cbegin

Designa o início da seqüência controlada.

unordered_multimap::cend

Designa o final da seqüência controlada.

unordered_multimap::clear

Remove todos os elementos.

unordered_multimap::count

Localiza o número de elementos que correspondem a uma chave especificada.

unordered_multimap::emplace

Adiciona um elemento construído no lugar.

unordered_multimap::emplace_hint

Adiciona um elemento construído no lugar, com dica.

unordered_multimap::empty

Testa se nenhum elemento está presente.

unordered_multimap::end

Designa o final da seqüência controlada.

unordered_multimap::equal_range

Localiza desde que corresponde a uma chave especificada.

unordered_multimap::erase

Remove os elementos em posições especificadas.

unordered_multimap::find

Localizar um elemento que corresponde a uma chave especificada.

unordered_multimap::get_allocator

Obtém o objeto armazenado do distribuidor.

unordered_multimap::hash_function

Obtém o objeto armazenado na função de hash.

unordered_multimap::insert

Adiciona elementos.

unordered_multimap::key_eq

Obtém o objeto armazenado na função de comparação.

unordered_multimap::load_factor

Conta os elementos média pelo compartimento de memória.

unordered_multimap::max_bucket_count

Obtém o número máximo de compartimento de memória.

unordered_multimap::max_load_factor

Obtém ou define os elementos máximo pelo compartimento de memória.

unordered_multimap::max_size

Obtém o tamanho máximo de seqüência controlada.

unordered_multimap::rehash

O reconstrói tabela de hash.

unordered_multimap::size

Conta o número de elementos.

unordered_multimap::swap

Alterna o conteúdo de dois controles.

unordered_multimap::unordered_multimap

Constrói um objeto contêiner.

Operator

Descrição

unordered_multimap::operator=

Copia um tabela de hash.

Comentários

O objeto da seqüência que controla o chamar dois objetos armazenados, um objeto de função de comparação de tipo unordered_multimap::key_equal e um objeto de função de hash do tipo unordered_multimap::hasher.Você acessa o primeiro objeto armazenado chamando a função de membro unordered_multimap::key_eq(); você acessa e o segundo objeto armazenado chamando a função de membro unordered_multimap::hash_function().Especificamente, para todos os valores X e Y de tipo Key, a chamada retorna true key_eq()(X, Y) somente se os dois valores de argumento têm equivalentes; pedido a chamada hash_function()(keyval) produz uma distribuição dos valores do tipo size_t.A o contrário da classe unordered_map Classdo modelo, um objeto da classe unordered_multimap de modelo não garante que key_eq()(X, Y) está sempre falso para todos os dois elementos da seqüência controlada.(As chaves não precisam ser exclusivos.)

O objeto também armazena um fator de carregamento máximo, que especifica o número máximo de elementos médio desejado pelo compartimento de memória.Se inserir um elemento faz com que unordered_multimap::load_factor() exceda o fator de carregamento máximo, o contêiner aumenta o número de compartimento de memória e reconstrói o tabela de hash quando necessário.

A ordem real de elementos na seqüência controlada depende da função de hash, função de comparação, a ordem de inserção, o fator de carregamento máximo, e o número atual de compartimento de memória.Você não pode prever em geral a ordem dos elementos na seqüência controlada.Você sempre pode assegurar-se, entretanto, que qualquer subconjunto dos elementos que têm ordenação equivalente seja adjacente na seqüência controlada.

O objeto aloca e libera o armazenamento para a seqüência que controla através de um objeto armazenado do distribuidor de tipo unordered_multimap::allocator_type.Tal objeto do distribuidor deve ter a mesma interface externo que um objeto da classe allocatordo modelo.Observe que o objeto armazenado do distribuidor não é copiado quando o objeto contêiner é atribuído.

Requisitos

Cabeçalho: <unordered_map>

namespace: STD

Consulte também

Referência

<unordered_map>

unordered_multimap Class