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
Construtores
Constrói multimap que está vazio ou que é uma cópia de todo ou parte de qualquer outro multimap. |
Typedefs
Um tipo que representa a classe de allocator para o objeto de multimap . |
|
Um tipo que fornece um iterador bidirecional que possa ler um elemento de const em multimap. |
|
Um tipo que provê um ponteiro para um elemento de const em multimap. |
|
Um tipo que fornecesse uma referência a um elemento de const armazenado em multimap para ler e executar operações de const . |
|
Um tipo que fornece um iterador bidirecional que pode ler qualquer elemento de const em multimap. |
|
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 |
|
Um tipo que fornece a diferença entre dois iteradores que se referem aos elementos dentro do mesmo multimap. |
|
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. |
|
Um tipo que descreve o objeto de chave de tipo que constitui cada elemento de multimap. |
|
Um tipo que representa o tipo de dados armazenados em multimap. |
|
Um tipo que provê um ponteiro para um elemento de const em multimap. |
|
Um tipo que fornecesse uma referência a um elemento armazenado em multimap. |
|
Um tipo que fornece um iterador bidirecional que pode ler ou modificar um elemento em multimapinvertido. |
|
Um tipo inteiro sem sinal de que fornece um ponteiro para um elemento de const em multimap. |
|
Um tipo que provê um objeto de função que possa comparar dois elementos como chaves de tipo para determinar a ordem em multimaprelativo. |
Funções de membro
Retorna um iterador que trata o primeiro elemento em multimap. |
|
Retorna um iterador const que trata o primeiro elemento em multimap. |
|
Retorna um iterador const atende o local que é bem-sucedido o último elemento em multimap. |
|
Apaga todos os elementos de multimap. |
|
Retorna o número de elementos em multimap cuja chave corresponde a uma chave parâmetro- especificada. |
|
Retorna um iterador const que trata o primeiro elemento em multimapinvertido. |
|
Retorna um iterador const atende o local que é bem-sucedido o último elemento em multimapinvertido. |
|
Insere um elemento construído no lugar em multimap. |
|
Insere um elemento construído no lugar em multimap, com uma dica de posicionamento |
|
Teste se multimap está vazia. |
|
Retorna um iterador atende o local que é bem-sucedido o último elemento em multimap. |
|
Localiza o intervalo de elementos onde a chave do elemento corresponde a um valor especificado. |
|
Remove um elemento ou um intervalo de elementos em multimap das posições especificadas ou removendo os elementos que correspondem a uma chave especificada. |
|
Retorna um iterador que trata o primeiro lugar de um elemento em multimap que tenha um principal equivalente a uma chave especificada. |
|
Retorna uma cópia do objeto de allocator usado para construir multimap. |
|
Insere um elemento ou um intervalo de elementos em multimap. |
|
Recupera uma cópia do objeto de comparação usado para chaves de ordem em multimap. |
|
Retorna um iterador para o primeiro elemento em multimap que com uma chave para que é igual ou maior do que a chave especificada. |
|
Retorna o comprimento máximo de multimap. |
|
Retorna um iterador que trata o primeiro elemento em multimapinvertido. |
|
Retorna um iterador atende o local que é bem-sucedido o último elemento em multimapinvertido. |
|
Retorna o número de elementos em multimap. |
|
Troca os elementos de multimapdois S. |
|
Retorna um iterador para o primeiro elemento em multimap que com uma chave que é maior do que uma chave especificada. |
|
A função de membro retorna um objeto de função que determina a ordem dos elementos em multimap comparando seus valores chave. |
Operadores
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