multiset (STL/CLR)

A classe de modelo descreve um objeto que controla uma seqüência de comprimento variando de elementos que tem acesso bidirecional.Use o contêiner multiset para gerenciar uma seqüência de elementos como uma árvore balanceada (quase) ordenada de nós, cada um elemento de armazenamento.

Na descrição abaixo, GValue é o mesmo que GKey, que por sua vez é o mesmo que Key , a menos que o último é um tipo de referência, caso em que é Key^.

template<typename Key>
    ref class multiset
        :   public
        System::ICloneable,
        System::Collections::IEnumerable,
        System::Collections::ICollection,
        System::Collections::Generic::IEnumerable<GValue>,
        System::Collections::Generic::ICollection<GValue>,
        System::Collections::Generic::IList<GValue>,
        Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
    { ..... };

Parâmetros

  • Chave
    O tipo de componente fundamental de um elemento na seqüência controlada.

Membros

Definição de tipo

Descrição

multiset::const_iterator (STL/CLR)

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

multiset::const_reference (STL/CLR)

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

multiset::const_reverse_iterator (STL/CLR)

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

multiset::difference_type (STL/CLR)

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

multiset::generic_container (STL/CLR)

O tipo de interface genérica para o recipiente.

multiset::generic_iterator (STL/CLR)

O tipo de um iterador para a interface genérica para o recipiente.

multiset::generic_reverse_iterator (STL/CLR)

O tipo de um iterador inverso para a interface genérica para o recipiente.

multiset::generic_value (STL/CLR)

O tipo de um elemento da interface genérica para o recipiente.

multiset::Iterator (STL/CLR)

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

multiset::key_compare (STL/CLR)

O delegado pedido de duas chaves.

multiset::key_type (STL/CLR)

O tipo de uma chave de ordenação.

multiset::Reference (STL/CLR)

O tipo de uma referência a um elemento.

multiset::reverse_iterator (STL/CLR)

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

multiset::size_type (STL/CLR)

O tipo de uma distância (não negativo) entre dois elementos.

multiset::value_compare (STL/CLR)

O delegado pedido para dois valores de elemento.

multiset::value_type (STL/CLR)

O tipo de um elemento.

Função de membro

Descrição

multiset::Begin (STL/CLR)

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

multiset::Clear (STL/CLR)

Remove todos os elementos.

multiset::Count (STL/CLR)

Contagens de elementos correspondentes a uma chave especificada.

multiset::Empty (STL/CLR)

Testes se elementos não estão presentes.

multiset::end (STL/CLR)

Designa o final da seqüência controlada.

multiset::equal_range (STL/CLR)

Localiza o intervalo que corresponde a uma chave especificada.

multiset::Erase (STL/CLR)

Remove os elementos em posições especificadas.

multiset::Find (STL/CLR)

Localiza um elemento que coincida com uma chave especificada.

multiset::Insert (STL/CLR)

Adiciona elementos.

multiset::key_comp (STL/CLR)

Copia o delegado pedido de duas chaves.

multiset::lower_bound (STL/CLR)

Localiza o início do intervalo que corresponde a uma chave especificada.

multiset::make_value (STL/CLR)

Constrói um objeto de valor.

multiset::multiset (STL/CLR)

Constrói um objeto de recipiente.

multiset::rbegin (STL/CLR)

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

multiset::rend (STL/CLR)

Designa o final da seqüência controlada revertida.

multiset::Size (STL/CLR)

Conta o número de elementos.

multiset::swap (STL/CLR)

Troca o conteúdo dos dois recipientes.

multiset::to_array (STL/CLR)

Copia a seqüência controlada para uma nova matriz.

multiset::upper_bound (STL/CLR)

Localiza o final do intervalo que corresponde a uma chave especificada.

multiset::value_comp (STL/CLR)

Copia o delegate pedido para dois valores de elemento.

Operator

Descrição

multiset::Operator = (STL/CLR)

Substitui a seqüência controlada.

operador! = (multiset) (STL/CLR)

Determina se um multiset não é igual a outro objeto multiset objeto.

operador < (multiset) (STL/CLR)

Determina se um multiset objeto é menor que outro multiset objeto.

operador < = (multiset) (STL/CLR)

Determina se um multiset objeto é menor ou igual a outro multiset objeto.

operador = = (multiset) (STL/CLR)

Determina se um multiset objeto é igual a outro multiset objeto.

operador > (multiset) (STL/CLR)

Determina se um multiset objeto é maior que o outro multiset objeto.

operador > = (multiset) (STL/CLR)

Determina se um multiset objeto é maior ou igual a outro multiset objeto.

Interfaces

Interface

Descrição

ICloneable

Duplica um objeto.

IEnumerable

Por meio de elementos na seqüência.

ICollection

Manter o grupo de elementos.

IEnumerable<T>

Seqüência pelos elementos digitados.

ICollection<T>

Manter o grupo de elementos digitados.

ITree < chave, valor >

Manter um contêiner genérico.

Comentários

O objeto aloca e libera o armazenamento para a seqüência que ele controla como nós individuais.Ele insere elementos em uma árvore balanceada (quase) que mantém ordenada alterando os links entre os nós nunca copiando o conteúdo de um nó para outro.Isso significa que você pode inserir e remover elementos livremente sem atrapalhar elementos restantes.

O objeto ordena a seqüência que ele controla chamando um objeto delegado armazenado do tipo multiset::key_compare (STL/CLR).Você pode especificar o objeto delegado armazenado quando você construir multiset; Se você não especificar nenhum objeto delegado, o padrão é a comparação operator<(key_type, key_type).Acessar este objeto armazenado chamando a função de membro multiset::key_comp (STL/CLR)().

Um objeto de delegado deve impor uma ordem fraca estrita em chaves do tipo multiset::key_type (STL/CLR).Isso significa que, para quaisquer duas chaves X e Y:

key_comp()(X, Y)Retorna o Boolean mesmo resultar em cada chamada.

Se key_comp()(X, Y) for true, em seguida, key_comp()(Y, X) deve ser false.

Se key_comp()(X, Y) for true, em seguida, X é dito ser solicitados antes de Y.

Se !key_comp()(X, Y) && !key_comp()(Y, X) for true, em seguida, X e Y disse ter pedido equivalente.

Para qualquer elemento X que precede Y na seqüência controlada, key_comp()(Y, X) é falso.(Para o objeto delegado padrão, as chaves nunca diminuir no valor.) Ao contrário da classe de modelo conjunto (STL/CLR), um objeto de classe de modelo multiset não requer chaves para todos os elementos são exclusivas.(Duas ou mais teclas podem ter pedido equivalente).

Cada elemento serve como um ey e um valor.A seqüê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 proporcionais ao logaritmo do número de elementos na seqüência (tempo logarítmica).Além disso, inserir um elemento invalida não iteradores e remover um elemento invalida os iteradores que apontem para o elemento removido.

Um multiset suporta iteradores bidirecional, o que significa que passo dadas um iterador que designa um elemento na seqüência controlada de elementos adjacentes.Um nó principal especial corresponde ao iterador retornado por multiset::end (STL/CLR)().Você pode diminuir este iterador para alcançar o último elemento na seqüência controlada, se presente.Você pode incrementar um iterador multiset para alcançar o nó principal e, em seguida, comparar igual a end().Mas não cancelam o iterador retornado por end().

Observe que você não pode se referir a um elemento multiconjunto diretamente dado sua posição numérica – o que requer um iterador de acesso aleatório.

Um iterador multiconjunto armazena um identificador de nó multiconjunto associada, que por sua vez armazena um identificador de seu contêiner associado.Você pode usar iteradores somente com seus objetos de recipiente associado.Um iterador multiconjunto permanece válido desde que seu nó multiconjunto associado está associado a algum multiset.Além disso, um iterador válido é dereferencable--ele pode ser usado para acessar ou alterar o valor do elemento designa – desde que não é igual a end().

Apagar ou remover um elemento chama o destruidor para o valor armazenado.Destruir o recipiente apaga todos os elementos.Assim, um recipiente cujo tipo de elemento é uma classe ref garante que nenhum elemento outlive no recipiente.Entretanto, observe que um recipiente de alças não not destruir seus elementos.

Requisitos

Cabeçalho: < cliext/conjunto >

Namespace: cliext

Consulte também

Referência

hash_map (STL/CLR)

hash_multiset (STL/CLR)

hash_multiset (STL/CLR)

hash_set (STL/CLR)

mapa (STL/CLR)

multiset (STL/CLR)

conjunto (STL/CLR)

Outros recursos

Referência de biblioteca STL/CLR