logo

Funció de mapa C++

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&lt;pair"> // map::allocator_type &gt; 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] = &apos;Nikita&apos;; Employees[105] = &apos;John&apos;; Employees[103] = &apos;Dolly&apos;; Employees[104] = &apos;Deep&apos;; Employees[102] = &apos;Aman&apos;; cout &lt;&lt; &apos;Employees[104]=&apos; &lt;&lt; Employees[104] &lt;&lt; endl &lt;&lt; endl; cout &lt;&lt; &apos;Map size: &apos; &lt;&lt; Employees.size() &lt;&lt; endl; cout &lt;&lt; endl &lt;&lt; &apos;Natural Order:&apos; &lt;&lt; endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; &apos;Reverse Order:&apos; &lt;&lt; endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; 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.