Partilhar via


multimap Class

A classe padrão de multimap da biblioteca do modelo é usada para armazenamento e recuperação de dados de uma coleção em que cada elemento é um controle que tem um valor de dados e uma chave de tipo.O valor da chave não precisa ser único e é usado para ordenar os dados automaticamente.O valor de um elemento em um multimap, mas não o valor da chave associado, pode ser alterado diretamente.Em vez disso, os valores associados com os principais elementos devem ser excluídos antigos e novos valores chave ser associados com os novos elementos inseridos.

template <
   class Key, 
   class Type, 
   class Traits=less<Key>, 
   class Allocator=allocator<pair <const Key, Type> > 
>
class multimap

Parâmetros

  • Chave
    O tipo de dados principal para ser armazenado no multimap.

  • Tipo
    O elemento tipo de dados a ser armazenado no multimap.

  • Traits
    O tipo que fornece um objeto de função que possa comparar dois valores de elemento como chaves de tipo para determinar a ordem relativa no multimap.O predicado binário less*<Key>* é o valor padrão.

  • Allocator
    O tipo que representa o objeto armazenado do distribuidor que encapsula detalhes sobre a alocação e a desalocação do mapa de memória.Esse argumento é opcional e o valor padrão é allocator*<*pair *<*const fechado, Type> >.

Comentários

A classe de multimap de STL é

  • Um contêiner associativo, enquanto um contêiner variável de tamanho que ofereça suporte a recuperação eficiente de valores de elemento baseasse em um valor de chave associada.

  • Reversível, porque fornece iteradores bidirecionais para acessar seus elementos.

  • Ordenada, porque seus elementos são ordenados pelos valores de dentro do contêiner de acordo com uma função especificada de comparação.

  • Múltiplas, porque seus elementos não precisam ter chaves exclusivas, para que um valor de chave pode ter vários valores de dados dos elementos associados com ele.

  • Um contêiner associativo de pares, porque seus valores de dados do elemento são distintos de seus valores chave.

  • Uma classe de modelo, porque a funcionalidade que fornece é genérico e portanto independente do tipo específico de dados contidos como elementos ou chaves.Os tipos de dados para ser usados para os elementos e as chaves, em vez disso, são especificados como parâmetros no modelo de classe juntamente com a função e o distribuidor de comparação.

O iterador fornecido pela classe é um mapa de iterador bidirecional, mas as funções de membro inserção e multimap de classe têm as versões que recebem como parâmetros de modelo um iterador mais flexível de entrada, cujos requisitos mínimos de funcionalidade sejam mais do que aquelas se a classe de iteradores bidirecionais.Os conceitos diferentes de iterador formam uma família relacionada por refinamentos em sua funcionalidade.Cada conceito de iterador tem seu próprio conjunto de requisitos e os algoritmos que funcionam com eles o limite de deve as suposições os requisitos fornecidos pelo tipo de iterador.Pode-se suponha que um iterador de entrada pode ser desreferenciado para referir-se a qualquer objeto e que pode ser iterador incrementado a seguir na sequência.Este é um conjunto mínimo de funcionalidade, mas é suficiente para poder falar significativa sobre um intervalo de iteradores [_First, _Last) no contexto das funções de membro da classe.

A escolha do tipo recipiente deve ser geralmente com base no tipo de pesquisa e de inserir exigido pelo aplicativo.Contêiners associativos são otimizados para operações de pesquisa, de inserção e remoção.As funções de membro que suportam explicitamente essas operações são eficientes, executando as em um horário que estão na média proporcionalmente para o logaritmo o número de elementos no recipiente.Inserindo os elementos não invalida nenhum iterador, e remover elementos invalida somente os iteradores que eles tivessem apontada especificamente em elementos removidos.

O multimap deve ser o contêiner associativo de opção quando as condições que associa os valores com suas chaves forem atendidas pelo aplicativo.Um modelo para esse tipo de estrutura é uma lista ordenada de palavras-chave com os valores da cadeia de caracteres associadas que fornecem as definições por exemplo, onde a palavra sempre não foram definidas como.Se, em vez disso, o palavras-chave foi definido exclusivamente para que as chaves são exclusivos, então um mapa seria o contêiner de escolha.Se, por outro lado, apenas a lista de palavras foi armazenada, então um conjunto seria o contêiner correto.Se várias ocorrências da palavra foram permitidas, então um multiset seria a estrutura do recipiente apropriado.

O multimap da sequência que controla chamando um objeto armazenado na função do tipo key_compare.Este objeto armazenado é uma função de comparação que pode ser acessada chamar a função de membro key_comp.Geralmente, os elementos precisam ser simplesmente menor que comparáveis estabelecer ordem: para que, dado todos os dois elementos, pode determinar se qualquer um que são equivalentes (no sentido que nenhum for menor do que o outro) ou um que é menor que o outro.Isso resulta em ordenação entre elementos nonequivalent.Em uma nota mais técnica, a função de comparação binária é um predicado que induza ordenação fraco strict no sentido matemático padrão.Um predicado fde binária (*x, y)*é um objeto de função que tem dois objetos de argumento x e y e um valor de retorno de verdadeiro ou falso.Classificação aplicada em um conjunto de livre é restrito se o predicado binária é irreflexive, anti-simétrico, e transitivo e se equivalência é transitiva, onde dois objetos x e y são definidos para ser equivalentes enquanto tanto f(*x, y)*e f(*x, y)*é falso.Se a condição mais segura de igualdade entre chaves substitui os de equivalência, então ordenação transformações total (no sentido que todos os elementos são ordenados em relação a se) e chaves correspondidas serão indiscerníveis de se.

Membros

1ka6hya8.collapse_all(pt-br,VS.110).gifConstrutores

multimap

Constrói multimap que está vazio ou que é uma cópia de todo ou parte de qualquer outro multimap.

1ka6hya8.collapse_all(pt-br,VS.110).gifTypedefs

allocator_type

Um tipo que representa a classe de allocator para o objeto de multimap .

const_iterator

Um tipo que fornece um iterador bidirecional que possa ler um elemento de const em multimap.

const_pointer

Um tipo que provê um ponteiro para um elemento de const em multimap.

const_reference

Um tipo que fornecesse uma referência a um elemento de const armazenado em multimap para ler e executar operações de const .

const_reverse_iterator

Um tipo que fornece um iterador bidirecional que pode ler qualquer elemento de const em multimap.

difference_type

Um tipo de inteiro com sinal que pode ser usado para representar o número de elementos de multimap em um intervalo entre elementos. apontado por iteradores

iterador

Um tipo que fornece a diferença entre dois iteradores que se referem aos elementos dentro do mesmo multimap.

key_compare

Um tipo que provê um objeto de função que pode comparar duas chaves de tipo para determinar a ordem relativo de dois elementos em multimap.

key_type

Um tipo que descreve o objeto de chave de tipo que constitui cada elemento de multimap.

mapped_type

Um tipo que representa o tipo de dados armazenados em multimap.

ponteiro

Um tipo que provê um ponteiro para um elemento de const em multimap.

referência

Um tipo que fornecesse uma referência a um elemento armazenado em multimap.

reverse_iterator

Um tipo que fornece um iterador bidirecional que pode ler ou modificar um elemento em multimapinvertido.

size_type

Um tipo inteiro sem sinal de que fornece um ponteiro para um elemento de const em multimap.

Tipo de valor

Um tipo que provê um objeto de função que possa comparar dois elementos como chaves de tipo para determinar a ordem em multimaprelativo.

1ka6hya8.collapse_all(pt-br,VS.110).gifFunções de membro

inicie

Retorna um iterador que trata o primeiro elemento em multimap.

multimap::cbegin

Retorna um iterador const que trata o primeiro elemento em multimap.

multimap::cend

Retorna um iterador const atende o local que é bem-sucedido o último elemento em multimap.

espaço livre

Apaga todos os elementos de multimap.

contagem

Retorna o número de elementos em multimap cuja chave corresponde a uma chave parâmetro- especificada.

multimap::crbegin

Retorna um iterador const que trata o primeiro elemento em multimapinvertido.

multimap::crend

Retorna um iterador const atende o local que é bem-sucedido o último elemento em multimapinvertido.

multimap::emplace

Insere um elemento construído no lugar em multimap.

multimap::emplace_hint

Insere um elemento construído no lugar em multimap, com uma dica de posicionamento

vazio

Teste se multimap está vazia.

end

Retorna um iterador atende o local que é bem-sucedido o último elemento em multimap.

equal_range

Localiza o intervalo de elementos onde a chave do elemento corresponde a um valor especificado.

erase

Remove um elemento ou um intervalo de elementos em multimap das posições especificadas ou removendo os elementos que correspondem a uma chave especificada.

localizar

Retorna um iterador que trata o primeiro lugar de um elemento em multimap que tenha um principal equivalente a uma chave especificada.

get_allocator

Retorna uma cópia do objeto de allocator usado para construir multimap.

inserção

Insere um elemento ou um intervalo de elementos em multimap.

key_comp

Recupera uma cópia do objeto de comparação usado para chaves de ordem em multimap.

lower_bound

Retorna um iterador para o primeiro elemento em multimap que com uma chave para que é igual ou maior do que a chave especificada.

max_size

Retorna o comprimento máximo de multimap.

rbegin

Retorna um iterador que trata o primeiro elemento em multimapinvertido.

arrancar

Retorna um iterador atende o local que é bem-sucedido o último elemento em multimapinvertido.

tamanho

Retorna o número de elementos em multimap.

troca

Troca os elementos de multimapdois S.

upper_bound

Retorna um iterador para o primeiro elemento em multimap que com uma chave que é maior do que uma chave especificada.

value_comp

A função de membro retorna um objeto de função que determina a ordem dos elementos em multimap comparando seus valores chave.

1ka6hya8.collapse_all(pt-br,VS.110).gifOperadores

multimap::operator=

Substitui os elementos de multimap com uma cópia de outro multimap.

Requisitos

Cabeçalho: <map>

Namespace: STD

key(), valueos pares são armazenados em um multimap como objetos do tipo pair.A classe de pares requer o cabeçalho <utility>, que é automaticamente encapsulado por <map>.

Consulte também

Referência

Segurança do thread na biblioteca C++ padrão

Standard Template Library

Outros recursos

Membros multimap

<map> Membros

Arquivos de cabeçalho