Classe map
Usado para o armazenamento e a recuperação de dados de uma coleção em que cada elemento é um par que contém um valor de dados e uma chave de classificação. O valor da chave é exclusivo e usado para classificar os dados automaticamente.
O valor de um elemento em um mapa pode ser alterado diretamente. O valor de chave é uma constante e não pode ser alterado. Em vez disso, os valores de chave associados aos elementos antigos devem ser excluídos e os novos valores de chave devem ser inseridos para novos elementos.
template <
class Key,
class Type,
class Traits = less<Key>,
class Allocator=allocator<pair <const Key, Type> >
> class map;
Parâmetros
Key
O tipo de dados da chave a ser armazenado no mapa.Type
O tipo de dados do elemento a ser armazenado no mapa.Traits
O tipo que fornece um objeto de função que pode comparar dois valores de elemento como chaves de classificação para determinar sua ordem relativa no mapa. Esse argumento é opcional e o predicado binário less<Key> é o valor padrão.Allocator
O tipo que representa o objeto de alocador armazenado que encapsula detalhes sobre a alocação e a desalocação do mapa da memória. Esse argumento é opcional e o valor padrão é allocator<pair <constKey*,* Type> >.
Comentários
A classe de mapa da STL (Biblioteca de Modelos Padrão) é:
Um contêiner de tamanho variável que recupera com eficiência valores de elemento com base em valores de chave associados.
Reversível, pois fornece iteradores bidirecionais para acessar seus elementos.
Classificada, pois seus elementos são ordenados por valores de chave, de acordo com uma função de comparação especificada.
Exclusiva, pois cada um de seus elementos deve ter uma chave exclusiva.
Um contêiner de par associativo, pois seus valores de dados de elemento são distintos de seus valores de chave.
Uma classe de modelo, pois a funcionalidade fornecida por ela é genérica e independente do tipo de chave ou elemento. Os tipos de dados usados para elementos e chaves são especificados como parâmetros no modelo de classe juntamente com o alocador e a função de comparação.
O iterador fornecido pela classe de mapa é um iterador bidirecional, mas as funções membro de classe insert e map possuem versões que usam como parâmetros de modelo um iterador de entrada mais fraco, com menos requisitos de funcionalidade do que os garantidos pela classe de iteradores bidirecionais. Os conceitos de iterador diferente são relacionados por refinamentos em sua funcionalidade. Cada conceito de iterador tem seu próprio conjunto de requisitos e os algoritmos que funcionam com ele devem ser limitados por esses requisitos. Um iterador de entrada pode ser desreferenciado para fazer referência a algum objeto e pode se incrementado para o próximo iterador na sequência.
É recomendável basear a escolha do tipo de contêiner no tipo de pesquisa e inserção que é exigido pelo aplicativo. Os contêineres associativos são otimizados para as operações de pesquisa, inserção e remoção. As funções membro que oferecem suporte explicitamente a essas operações as executam, na pior das hipóteses, em um tempo proporcional para o logaritmo do número de elementos no contêiner. A inserção de elementos não invalida iteradores e a remoção de elementos invalida apenas os iteradores que apontavam especificamente para os elementos removidos.
É recomendável fazer o mapa do contêiner associativo escolhido quando as condições que associam os valores às chaves forem atendidas pelo aplicativo. Um modelo para esse tipo de estrutura é uma lista ordenada de palavras-chave que ocorrem uma única vez e que tenham valores de cadeia de caracteres associados que forneçam definições. Se uma palavra tiver mais de uma definição correta, essa chave não será exclusiva, de modo que um multimapa seria um contêiner melhor. Se apenas a lista de palavras estiver sendo armazenada, um conjunto será o contêiner apropriado. Se forem permitidas várias ocorrências das palavras, um multiset será mais adequado.
O mapa ordena os elementos que controla chamando um objeto de função armazenado do tipo key_compare. Esse objeto armazenado é uma função de comparação que é acessada chamando o método key_comp. De modo geral, dois elementos determinados são comparados para saber se um é menor que o outro ou se são equivalentes. Como todos os elementos são comparados, é criada uma sequência ordenada de elementos não equivalentes.
Dica
A função de comparação é um predicado binário que induz a uma ordenação fraca restrita no sentido matemático padrão.Um predicado binário f(x,y) é um objeto de função que possui dois objetos de argumento, x e y, e um valor de retorno de true ou false.Uma ordenação imposta em um conjunto será uma ordenação fraca restrita se o predicado binário for irreflexivo, antissimétrico e transitivo, e se a equivalência for transitiva, onde dois objetos x e y são definidos para serem equivalentes quando ambos, f(x,y)e f(y,x) são false.Se a condição mais forte de igualdade entre as chaves substituir essa equivalência, a ordenação será total (no sentido de que todos os elementos serão ordenados um em relação ao outro) e as chaves correspondentes não poderão ser diferenciadas uma da outra.
Membros
Construtores
Constrói uma lista de um tamanho específico, ou com elementos de um valor específico, ou com um allocator específico, ou como uma cópia de algum outro mapa. |
Typedefs
Um typedef para a classe allocator do mapa. |
|
Um typedef para um iterador bidirecional que pode ler um elemento const no mapa. |
|
Um typedef de um ponteiro para um elemento const em um mapa. |
|
Um typedef de uma referência para um elemento const armazenado em um mapa para leitura e execução de operações const. |
|
Um tipo que fornece um iterador bidirecional que pode ler qualquer elemento const no mapa. |
|
Um typedef de inteiro com sinal para o número de elementos de um mapa em um intervalo entre os elementos apontado pelos iteradores. |
|
Um typedef para um iterador bidirecional que pode ler ou modificar qualquer elemento em um mapa. |
|
Um typedef de um objeto de função que pode comparar duas chaves de classificação para determinar a ordem relativa de dois elementos no mapa. |
|
Um typedef para a chave de classificação armazenada em cada elemento do mapa. |
|
Um typedef para os dados armazenados em cada elemento de um mapa. |
|
Um typedef de um ponteiro para um elemento const em um mapa. |
|
Um typedef de uma referência para um elemento armazenado em um mapa. |
|
Um typedef para um iterador bidirecional que pode ler ou modificar um elemento em um mapa invertido. |
|
Um typedef de inteiro não assinado para o número de elementos em um mapa |
|
Um typedef para o tipo de objeto armazenado como um elemento em um mapa. |
Funções membro
Localiza um elemento com um valor de chave especificado. |
|
Retorna um iterador que aponta para o primeiro elemento no mapa. |
|
Retorna um iterador const que aponta para o primeiro elemento no mapa. |
|
Retorna um iterador const que ultrapassa o fim. |
|
Apaga todos os elementos de um mapa. |
|
Retorna o número de elementos em um mapa cuja chave corresponde à chave especificada em um parâmetro. |
|
Retorna um iterador const que aponta para o primeiro elemento em um mapa invertido. |
|
Retorna um iterador const que aponta para o local após o último elemento em um mapa invertido. |
|
Insere um elemento construído adequadamente no mapa. |
|
Insere um elemento construído adequadamente no mapa, com uma dica de posicionamento. |
|
Retornará true se um mapa estiver vazio. |
|
Retorna o iterador que ultrapassa o fim. |
|
Retorna um par de iteradores. O primeiro iterador no par aponta para o primeiro elemento em um map com uma chave que é maior que uma chave especificada. O segundo iterador no par aponta para o primeiro elemento no map com uma chave que é igual ou maior que a chave. |
|
Remove das posições especificadas um elemento ou um intervalo de elementos em uma mapa. |
|
Retorna um iterador que aponta para o local de um elemento em um mapa que tem uma chave igual a uma chave especificada. |
|
Retorna uma cópia do objeto allocator que é usada para construir o mapa. |
|
Insere em uma posição especificada um elemento ou um intervalo de elementos em uma mapa. |
|
Retorna uma cópia do objeto de comparação que é usada para ordenar chaves em um mapa. |
|
Retorna um iterador para o primeiro elemento em um mapa que tem um valor de chave que é igual ou maior que uma chave especificada. |
|
Retorna o comprimento máximo do mapa. |
|
Retorna um iterador que aponta para o primeiro elemento em um mapa invertido. |
|
Retorna um iterador que aponta para o local após o último elemento em um mapa invertido. |
|
Retorna o número de elementos no mapa. |
|
Troca os elementos de dois mapas. |
|
Retorna um iterador para o primeiro elemento em um mapa que tem um valor de chave que é maior que uma chave especificada. |
|
Recupera uma cópia do objeto de comparação que é usada para ordenar valores de elemento em um mapa. |
Operadores
Insere um elemento em um mapa com um valor de chave especificado. |
|
Substitui os elementos de um mapa por uma cópia de outro mapa. |
Requisitos
Cabeçalho: <map>
Namespace: std
Consulte também
Referência
Segurança de threads na Biblioteca Padrão C++