Compartilhar via


Classe unordered_multiset

A classe de modelo descreve um objeto que controla uma sequência de comprimento diferentes de elementos do tipo const Key. A sequência é weakly ordenados por uma função de hash, a sequência em um conjunto ordenado de subseqüências chamado buckets partições.Dentro de cada bucket uma função de comparação determina se qualquer emparelhar de elementos tem equivalente de pedidos.Cada elemento serve sistema autônomo uma chave de classificar e um valor.A sequência é representada de forma que permite a pesquisa, inserção e remoção de um elemento arbitrário com um número de operações que pode ser independente do número de elementos na sequência (time constante), pelo menos quando todos os depósitos são aproximadamente o mesmo comprimento.Na pior das hipóteses, quando todos os elementos estão em um compartimento de memória, o número de operações é proporcional ao número de elementos em sequência (time linear).Além disso, inserir um elemento não invalida nenhum iteradores e remover um elemento invalida os iteradores que aponta para o elemento removido.

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

Parâmetros

  • Key
    O tipo de chave.

  • 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 alocador.

Membros

Definição de tipo

Descrição

unordered_multiset::allocator_type

O tipo de um alocador de gerenciamento de armazenamento.

unordered_multiset::const_iterator

O tipo de um iterador constante para a sequência controlado.

unordered_multiset::const_local_iterator

O tipo de um iterador constante bucket para a sequência controlado.

unordered_multiset::const_pointer

O tipo de um ponteiro constante para um elemento.

unordered_multiset::const_reference

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

unordered_multiset::difference_type

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

unordered_multiset::hasher

O tipo de função de hash.

unordered_multiset::iterador

O tipo de um iterador para a sequência controlado.

unordered_multiset::key_equal

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

unordered_multiset::key_type

O tipo de uma chave de classificação.

unordered_multiset::local_iterator

O tipo de um iterador bucket para a sequência controlado.

unordered_multiset::ponteiro

O tipo de um ponteiro para um elemento.

unordered_multiset::Reference

O tipo de uma referência a um elemento.

unordered_multiset::size_type

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

unordered_multiset::value_type

O tipo de um elemento.

Função de membro

Descrição

unordered_multiset::begin

Designa o início da sequência controlado.

unordered_multiset::bucket

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

unordered_multiset::bucket_count

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

unordered_multiset::bucket_size

Obtém o dimensionar de um depósito.

unordered_multiset::desmarcar

Remove todos os elementos.

unordered_multiset::Count

Localiza o número de elementos de correspondência de uma chave especificada.

unordered_multiset::Empty

Testes se sem elementos estão presentes.

unordered_multiset::participante

Designa o participante da sequência de controlado.

unordered_multiset::equal_range

Localiza o intervalo que corresponde a uma chave especificada.

unordered_multiset::Erase

Remove os elementos em posições especificadas.

unordered_multiset::Find

Localiza um elemento que coincida com uma chave especificada.

unordered_multiset::get_allocator

Obtém o objeto alocador armazenado.

unordered_multiset::hash_function

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

unordered_multiset::Insert

Adiciona elementos.

unordered_multiset::key_eq

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

unordered_multiset::load_factor

Conta os elementos médio por partição de memória.

unordered_multiset::max_bucket_count

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

unordered_multiset::max_load_factor

Obtém ou define os elementos máximo por partição de memória.

unordered_multiset::max_size

Obtém o dimensionar máximo da sequência controlado.

unordered_multiset::rehash

Recria a tabela de hash.

unordered_multiset::dimensionar

Conta o número de elementos.

unordered_multiset::swap

Troca o Sumário de dois recipientes.

unordered_multiset::unordered_multiset

Constrói um objeto de contêiner.

Comentários

O objeto ordena a sequência controla chamando dois objetos armazenados, um objeto de função de comparação do tipo unordered_multiset::key_equal e um objeto de função de hash do tipo unordered_multiset::hasher. Você acessar o primeiro objeto armazenado chamando a função de membro unordered_multiset::key_eq(); e acessar o segundo objeto armazenado chamando a função de membro unordered_multiset::hash_function(). Especificamente, para todos os valores de X e Y do tipo Key, a telefonar key_eq()(X, Y) Retorna true somente se têm os valores de dois argumento pedidos equivalente; a telefonar hash_function()(keyval) produz uma distribuição de valores de tipo size_t. Ao contrário do modelo de classe Classe unordered_set, um objeto de classe de modelo unordered_multiset não garante que key_eq()(X, Y) é sempre falso para qualquer elemento da sequência controlado de dois. (As chaves não precisam ser exclusivas.)

O objeto também armazena um fator de carga máxima, que especifica que o número máximo desejado número médio de elementos por partição de memória.Se inserir um elemento faz com que unordered_multiset::load_factor() para superar o fator de carga máxima, o contêiner aumenta o número de compartimentos de memória e recria a tabela de hash, conforme necessário.

A ordem real dos elementos na sequência controlado depende a função de hash, a função de comparação, a ordem de inserção, o fator de carga máxima e o número corrente de partições de memória.Em geral, você não pode prever a ordem dos elementos na sequência controlado.Você pode sempre ter certeza, no entanto, que são adjacentes na sequência controlada qualquer subconjunto de elementos que possuem pedidos equivalente.

O objeto aloca e libera o armazenamento para a sequência controlados por ele por meio de um objeto armazenado alocador do tipo unordered_multiset::allocator_type. Tal objeto alocador deve ter a mesma interface externa sistema autônomo um objeto de classe de modelo allocator. Observe que o objeto alocador armazenado não é copiado quando o objeto contêiner é atribuído.

Requisitos

Cabeçalho:<unordered_set>

Namespace: std::tr1

Consulte também

Referência

<unordered_set>

Classe unordered_multiset