Compartilhar via


vários mapeamentos (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 multimap para gerenciar uma seqüência de elementos como uma árvore balanceada (quase) ordenada de nós, cada um elemento de armazenamento.Um elemento consiste em uma chave, para pedidos a seqüência e um valor mapeado, que vai para a jornada.

Na descrição abaixo, GValue é o mesmo:

Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>

onde:

GKeyé o mesmo que Key , a menos que o último é um tipo de referência, caso em que éKey^

GMappedé o mesmo que Mapped , a menos que o último é um tipo de referência, caso em que éMapped^

template<typename Key,
    typename Mapped>
    ref class multimap
        :   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.

  • Mapeados
    O tipo de componente adicional de um elemento na seqüência controlada.

Membros

Definição de tipo

Descrição

multimap::const_iterator (STL/CLR)

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

multimap::const_reference (STL/CLR)

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

multimap::const_reverse_iterator (STL/CLR)

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

multimap::difference_type (STL/CLR)

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

multimap::generic_container (STL/CLR)

O tipo de interface genérica para o recipiente.

multimap::generic_iterator (STL/CLR)

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

multimap::generic_reverse_iterator (STL/CLR)

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

multimap::generic_value (STL/CLR)

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

multimap::Iterator (STL/CLR)

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

multimap::key_compare (STL/CLR)

O delegado pedido de duas chaves.

multimap::key_type (STL/CLR)

O tipo de uma chave de ordenação.

multimap::mapped_type (STL/CLR)

O tipo de valor mapeado associado a cada chave.

multimap::Reference (STL/CLR)

O tipo de uma referência a um elemento.

multimap::reverse_iterator (STL/CLR)

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

multimap::size_type (STL/CLR)

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

multimap::value_compare (STL/CLR)

O delegado pedido para dois valores de elemento.

multimap::value_type (STL/CLR)

O tipo de um elemento.

Função de membro

Descrição

multimap::Begin (STL/CLR)

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

multimap::Clear (STL/CLR)

Remove todos os elementos.

multimap::Count (STL/CLR)

Contagens de elementos correspondentes a uma chave especificada.

multimap::Empty (STL/CLR)

Testes se elementos não estão presentes.

multimap::end (STL/CLR)

Designa o final da seqüência controlada.

multimap::equal_range (STL/CLR)

Localiza o intervalo que corresponde a uma chave especificada.

multimap::Erase (STL/CLR)

Remove os elementos em posições especificadas.

multimap::Find (STL/CLR)

Localiza um elemento que coincida com uma chave especificada.

multimap::Insert (STL/CLR)

Adiciona elementos.

multimap::key_comp (STL/CLR)

Copia o delegado pedido de duas chaves.

multimap::lower_bound (STL/CLR)

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

multimap::make_value (STL/CLR)

Constrói um objeto de valor.

multimap::multimap (STL/CLR)

Constrói um objeto de recipiente.

multimap::rbegin (STL/CLR)

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

multimap::rend (STL/CLR)

Designa o final da seqüência controlada revertida.

multimap::Size (STL/CLR)

Conta o número de elementos.

multimap::swap (STL/CLR)

Troca o conteúdo dos dois recipientes.

multimap::to_array (STL/CLR)

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

multimap::upper_bound (STL/CLR)

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

multimap::value_comp (STL/CLR)

Copia o delegate pedido para dois valores de elemento.

Operator

Descrição

multimap::Operator = (STL/CLR)

Substitui a seqüência controlada.

operador! = (vários mapeamentos) (STL/CLR)

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

operador < (vários mapeamentos) (STL/CLR)

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

operador < = (vários mapeamentos) (STL/CLR)

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

operador = = (vários mapeamentos) (STL/CLR)

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

operador > (vários mapeamentos) (STL/CLR)

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

operador > = (vários mapeamentos) (STL/CLR)

Determina se um multimap objeto é maior ou igual a outro multimap 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 multimap::key_compare (STL/CLR).Você pode especificar o objeto delegado armazenado ao construir vários mapeamentos; 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 multimap::key_comp (STL/CLR)().

Um objeto de delegado deve impor uma ordem fraca estrita em chaves do tipo multimap::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 mapa (STL/CLR), um objeto de classe de modelo multimap não requer chaves para todos os elementos são exclusivas.(Duas ou mais teclas podem ter pedido equivalente).

Cada elemento contém uma chave e um valor mapeado.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 vários mapeamentos 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 multimap::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 multimap 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 multimap diretamente dado sua posição numérica – o que requer um iterador de acesso aleatório.

Um iterador multimap armazena um identificador para o nó associado multimap, 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 multimap permanece válido desde que seu nó multimap associado está associado a vários alguns mapeamentos.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/mapa >

Namespace: cliext

Consulte também

Referência

hash_map (STL/CLR)

hash_multimap (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