English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriais Básicos

C++ Controle de fluxo

C++ Função

C++ Array & string

C++ Estrutura de dados

C++ Classe & objeto

C++ Ponteiros

C++ Herança

C++ Tutorial da STL

C++ Manual de Referência

C++ Métodos de uso e exemplos do map

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:

ChavesValores
101Nikita
102Robin
103Deep
104John

Sintaxe

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;

parâmetros

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\.

Criar\ map

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.

Instância1

#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

Funções membro

A seguir está a lista de todas as funções membro do map:

Construtor/Destrutor

FunçãoDescrição
constructorsConstrução do map
DestructorsDestrutor do map
operator=Copia os elementos do map para outro contêiner de map.

Iteradores

FunçãoDescrição
beginRetorna um iterador até ao primeiro elemento do map.
cbeginRetorna um iterador constante até ao primeiro elemento do map.
endRetorna um iterador até ao fim.
cendRetorna um iterador constante até ao fim.
rbeginRetorna um iterador de reverso até ao fim.
rendRetorna um iterador de reverso até ao início.
crbeginRetorna um iterador constante de reverso até ao fim.
crendRetorna um iterador constante de reverso até ao início.

Capacidade

FunçãoDescrição
emptySe o map estiver vazio, retorna true.
sizeRetorna o número de elementos no map.
max_sizeRetorna a capacidade máxima do map.

Acesso a elementos

FunçãoDescrição
operator[]Recupera o elemento com a chave fornecida.
atRecupera o elemento com a chave fornecida.

Modificador

FunçãoDescrição
insertInsere elementos no map.
eraseApaga elementos do map.
swapTroca o conteúdo do map.
clearRemove todos os elementos do map.
emplaceConstrói um novo elemento e o insere no map.
emplace_hintConstrói um novo elemento a partir de um sinal e o insere no map.

Observador

FunçãoDescrição
key_compRetorna uma cópia do objeto de comparação de chave.
value_compRetorna uma cópia do objeto de comparação de valor.

Modo de operação

FunçãoDescrição
findProcura por elementos com a chave fornecida.
countObtém o número de elementos correspondentes à chave fornecida.
lower_boundRetorna o limite inferior do iterador.
upper_boundRetorna um iterador até ao limite superior.
equal_rangeRetorna o intervalo de elementos correspondentes à chave fornecida.

Alocador

FunçãoDescrição
get_allocatorRetornar o objeto de alocação de memória usado para construir o map.

Função de Sobrecarga Não-Membro

FunçãoDescriçã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.