Els mapes formen part de la C++ STL (Standard Template Library). Els mapes són els contenidors associatius que emmagatzemen parells clau-valor ordenats, en els quals cada clau és única i es pot inserir o suprimir però no es pot modificar. Els valors associats a les claus es poden canviar.
Per exemple: Un mapa d'empleats on l'identificador de l'empleat és la clau i el nom és el valor es pot representar com:
Claus | Valors |
---|---|
101 | Nikita |
102 | Robin |
103 | Profund |
104 | Joan |
Sintaxi
template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator<pair"> // map::allocator_type > class map; </class>
Paràmetre
clau: El tipus de dades clau que s'ha d'emmagatzemar al mapa.
tipus: El tipus de dades de valor que s'ha d'emmagatzemar al mapa.
compara: Una classe de comparació que pren dos arguments del mateix tipus bool i retorna un valor. Aquest argument és opcional i el predicat binari menys és el valor per defecte.
alloc: Tipus d'objecte assignador. Aquest argument és opcional i el valor per defecte és allocator .
subcadena en bash
Creació d'un mapa
Els mapes es poden crear fàcilment mitjançant la declaració següent:
typedef pair value_type;
El formulari anterior servirà per crear un mapa amb clau de tipus Tipus de clau i valor del tipus tipus de valor. Una cosa important és que la clau d'un mapa i els valors corresponents s'insereixen sempre com a parell, no podeu inserir només una clau o només un valor en un mapa.
Exemple 1
#include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } }
Sortida:
Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
Funcions dels membres
A continuació es mostra la llista de totes les funcions membres del mapa:
Constructor/Destructor
Funcions | Descripció |
---|---|
constructors | Construeix el mapa |
destructors | Destructor de mapes |
operador= | Copia elements del mapa a un altre mapa. |
Iteradors
Funcions | Descripció |
---|---|
començar | Retorna un iterador que apunta al primer element del mapa. |
cbegin | Retorna un iterador constant que apunta al primer element del mapa. |
final | Retorna un iterador que apunta al final passat. |
uns quants | Retorna un iterador constant que apunta al final passat. |
començar | Retorna un iterador invers que apunta al final. |
fa | Retorna un iterador invers que apunta al principi. |
crbegin | Retorna un iterador invers constant que apunta al final. |
creure | Retorna un iterador invers constant que apunta al principi. |
Capacitat
Funcions | Descripció |
---|---|
buit | Retorna true si el mapa està buit. |
mida | Retorna el nombre d'elements del mapa. |
mida_màx | Retorna la mida màxima del mapa. |
Accés als elements
Funcions | Descripció |
---|---|
operador[] | Recupera l'element amb la clau donada. |
a les | Recupera l'element amb la clau donada. |
Modificadors
Funcions | Descripció |
---|---|
inserir | Insereix un element al mapa. |
esborrar | Esborra elements del mapa. |
intercanviar | Intercanviar el contingut del mapa. |
clar | Elimina tots els elements del mapa. |
ubicació | Construeix i inseriu els nous elements al mapa. |
emplace_hint | Construeix i inseriu nous elements al mapa mitjançant una pista. |
Observadors
Funcions | Descripció |
---|---|
key_comp | Retorna una còpia de l'objecte de comparació de claus. |
valor_comp | Retorna una còpia de l'objecte de comparació de valors. |
Operacions
Funcions | Descripció |
---|---|
trobar | Cerca un element amb la clau donada. |
comptar | Obté el nombre d'elements que coincideixen amb la clau donada. |
cota inferior | Retorna un iterador al límit inferior. |
límit_superior | Retorna un iterador al límit superior. |
rang_igual | Retorna l'interval d'elements que coincideixen amb la clau donada. |
Assignador
Funcions | Descripció |
---|---|
get_allocator | Retorna un objecte assignador que s'utilitza per construir el mapa. |
Funcions sobrecarregades no membres
Funcions | Descripció |
---|---|
operador== | Comprova si els dos mapes són iguals o no. |
operador!= | Comprova si els dos mapes són iguals o no. |
operador < | Comprova si el primer mapa és menor que un altre o no. |
operador<=< td> | Comprova si el primer mapa és menor o igual que un altre o no. | =<>
operador> | Comprova si el primer mapa és més gran que un altre o no. |
operador>= | Comprova si el primer mapa és més gran que igual a un altre o no. |
intercanviar () | Canvia l'element de dos mapes. |