English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O map é C ++ Parte da STL (Biblioteca de Templates Padrão). O map é um contêiner de pares de chave-valor ordenados, onde cada chave é única, pode ser inserida ou removida, mas não pode ser alterada. No entanto, o valor associado à chave pode ser alterado.
Por exemplo:Um\ contêiner\ map\ de\ funcionários,\ onde\ o\ ID\ do\ funcionário\ é\ a\ chave\ e\ o\ nome\ é\ o\ valor,\ pode\ ser\ representado\ como:
Chaves | Valores |
---|---|
101 | Nikita |
102 | Robin |
103 | Deep |
104 | John |
template\ <\ class\ Key, //map::key_type class\ T, //map::mapped_type class\ Compare\ =\ less, //map::key_compare class\ Alloc\ =\ allocator<pair> //map::allocator_type >\ class\ map;
key\:O\ tipo\ de\ dados\ da\ chave\ a\ ser\ armazenada\ no\ map.
type\:O\ tipo\ de\ dados\ do\ valor\ a\ ser\ armazenado\ no\ map.
compare\:Uma\ classe\ de\ comparação\ que\ aceita\ dois\ parâmetros\ do\ tipo\ bool\ e\ retorna\ um\ valor.\ Este\ parâmetro\ é\ opcional,\ o\ predicado\ binário\ less\ <\ "key"\ é\ o\ valor\ padrão.
alloc\:O\ tipo\ do\ objeto\ do\ allocator.\ Este\ parâmetro\ é\ opcional,\ o\ valor\ padrão\ é\ allocator
Pode\ criar\ um\ map\ facilmente\ usando\ a\ seguinte\ sentença:
typedef\ pair<const\ Key,\ T>\ value_type;
A\ seguinte\ sentença\ será\ usada\ para\ criar\ um\ tipo\ de\ chave\ Key,tipo\ de\ chave\ Key,evalor\ valuetipopara\ value_typedo\ map\.Um\ ponto\ importante\ é\ que\ os\ chaves\ e\ os\ valores\ correspondentes\ do\ map\ são\ sempre\ inseridos\ em\ pares,\ você\ não\ pode\ inserir\ apenas\ chaves\ ou\ apenas\ valores\ no\ map.
#include\t<string.h> #include\t<iostream> #include\t<map> #include\t<utility> using\ namespace\ std; int\tmain() { mapEmployees; // 1)\tusando\ o\ sinal\ de\ índice\ do\ array\ para\ atribuição Employees[101]\t=\"Nikita\"; Employees[105]\t=\"John\"; Employees[103]\t=\"Dolly\"; Employees[104]\t=\"Deep\"; Employees[102]\t=\"Aman\"; cout\t<<\"Employees[104]\"=\"\t<<\tEmployees[104]\t<<\tendl\t<<\tendl; cout\t<<\"Tamanho\ do\ map:\"\t<<\tEmployees.size()\t<<\tendl; cout\t<<\tendl\t<<\"ordem\ natural:\"\t<<\tendl; for(\tmap::iterator\tii=Employees.begin();\tii\!=Employees.end(); ++ii) { cout << (*ii).first << ": " << (*ii).second << endl; } cout << endl << "Ordem inversa:" << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ": " << (*ii).second << endl; } }
Saída:
Employees[104=Deep Tamanho do Map: 5 Ordem natural: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Ordem inversa: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
A seguir está a lista de todas as funções membro do map:
Função | Descrição |
---|---|
constructors | Construção do map |
Destructors | Destrutor do map |
operator= | Copia os elementos do map para outro contêiner de map. |
Função | Descrição |
---|---|
begin | Retorna um iterador até ao primeiro elemento do map. |
cbegin | Retorna um iterador constante até ao primeiro elemento do map. |
end | Retorna um iterador até ao fim. |
cend | Retorna um iterador constante até ao fim. |
rbegin | Retorna um iterador de reverso até ao fim. |
rend | Retorna um iterador de reverso até ao início. |
crbegin | Retorna um iterador constante de reverso até ao fim. |
crend | Retorna um iterador constante de reverso até ao início. |
Função | Descrição |
---|---|
empty | Se o map estiver vazio, retorna true. |
size | Retorna o número de elementos no map. |
max_size | Retorna a capacidade máxima do map. |
Função | Descrição |
---|---|
operator[] | Recupera o elemento com a chave fornecida. |
at | Recupera o elemento com a chave fornecida. |
Função | Descrição |
---|---|
insert | Insere elementos no map. |
erase | Apaga elementos do map. |
swap | Troca o conteúdo do map. |
clear | Remove todos os elementos do map. |
emplace | Constrói um novo elemento e o insere no map. |
emplace_hint | Constrói um novo elemento a partir de um sinal e o insere no map. |
Função | Descrição |
---|---|
key_comp | Retorna uma cópia do objeto de comparação de chave. |
value_comp | Retorna uma cópia do objeto de comparação de valor. |
Função | Descrição |
---|---|
find | Procura por elementos com a chave fornecida. |
count | Obtém o número de elementos correspondentes à chave fornecida. |
lower_bound | Retorna o limite inferior do iterador. |
upper_bound | Retorna um iterador até ao limite superior. |
equal_range | Retorna o intervalo de elementos correspondentes à chave fornecida. |
Função | Descrição |
---|---|
get_allocator | Retornar o objeto de alocação de memória usado para construir o map. |
Função | Descrição |
---|---|
operador== | Verificar se dois map são iguais. |
operador!= | Verificar se dois map são iguais. |
operador< | Verificar se o primeiro map é menor que outros map. |
operador<= | Verificar se o primeiro map é menor ou igual a outros map. |
operador> | Verificar se o primeiro map é maior que outros map. |
operador>= | Verificar se o primeiro map é maior que outros map. |
swap() | Trocar os elementos de dois map. |