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 |
o tipo de um distribuidor para gerenciar o armazenamento. |
|
o tipo de um iterador constante para a seqüência controlada. |
|
O tipo de um iterador constante de compartimento de memória para a seqüência controlada. |
|
o tipo de um ponteiro constante a um elemento. |
|
O tipo de uma constante referência a um elemento. |
|
o tipo de uma distância assinado entre dois elementos. |
|
O tipo de função de hash. |
|
o tipo de um iterador para a seqüência controlada. |
|
O tipo de função de comparação. |
|
O tipo de uma chave classificação. |
|
O tipo de um iterador de compartimento de memória para a seqüência controlada. |
|
O tipo de um valor mapeado associada a cada chave. |
|
O tipo de um ponteiro para um elemento. |
|
o tipo de uma referência a um elemento. |
|
O tipo de uma distância sem sinal entre dois elementos. |
|
o tipo de um elemento. |
Função de membro |
Descrição |
Designa o início da seqüência controlada. |
|
Obtém o número de compartimento de memória para um valor de chave. |
|
Obtém o número de compartimento de memória. |
|
Obtém o tamanho de um compartimento de memória. |
|
Designa o início da seqüência controlada. |
|
Designa o final da seqüência controlada. |
|
Remove todos os elementos. |
|
Localiza o número de elementos que correspondem a uma chave especificada. |
|
Adiciona um elemento construído no lugar. |
|
Adiciona um elemento construído no lugar, com dica. |
|
Testa se nenhum elemento está presente. |
|
Designa o final da seqüência controlada. |
|
Localiza desde que corresponde a uma chave especificada. |
|
Remove os elementos em posições especificadas. |
|
Localizar um elemento que corresponde a uma chave especificada. |
|
Obtém o objeto armazenado do distribuidor. |
|
Obtém o objeto armazenado na função de hash. |
|
Adiciona elementos. |
|
Obtém o objeto armazenado na função de comparação. |
|
Conta os elementos média pelo compartimento de memória. |
|
Obtém o número máximo de compartimento de memória. |
|
Obtém ou define os elementos máximo pelo compartimento de memória. |
|
Obtém o tamanho máximo de seqüência controlada. |
|
O reconstrói tabela de hash. |
|
Conta o número de elementos. |
|
Alterna o conteúdo de dois controles. |
|
Constrói um objeto contêiner. |
Operator |
Descrição |
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