Le mappe fanno parte del C++ STL (Standard Template Library). Le mappe sono i contenitori associativi che memorizzano coppie chiave-valore ordinate, in cui ogni chiave è univoca e può essere inserita o eliminata ma non può essere modificata. I valori associati alle chiavi possono essere modificati.
Per esempio: Una mappa di Dipendenti in cui l'ID dipendente è la chiave e il nome è il valore può essere rappresentata come:
Chiavi | Valori |
---|---|
101 | Nikita |
102 | Robin |
103 | Profondo |
104 | John |
Sintassi
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>
Parametro
chiave: Il tipo di dati chiave da archiviare nella mappa.
tipo: Il tipo di dati del valore da archiviare nella mappa.
confrontare: Una classe di confronto che accetta due argomenti dello stesso tipo bool e restituisce un valore. Questo argomento è facoltativo e il predicato binario less è il valore predefinito.
allocare: Tipo dell'oggetto allocatore. Questo argomento è facoltativo e il valore predefinito è allocator .
stringa in int
Creazione di una mappa
Le mappe possono essere facilmente create utilizzando la seguente istruzione:
typedef pair value_type;
Il modulo sopra verrà utilizzato per creare una mappa con la chiave di tipo Tipo di chiave e valore del tipo tipo di valore. Una cosa importante è che la chiave di una mappa e i valori corrispondenti siano sempre inseriti in coppia, non è possibile inserire solo la chiave o solo un valore in una mappa.
Esempio 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; } }
Produzione:
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
Funzioni dei membri
Di seguito è riportato l'elenco di tutte le funzioni membro della mappa:
Costruttore/Distruttore
Funzioni | Descrizione |
---|---|
costruttori | Costruisci la mappa |
distruttori | Distruttore di mappe |
operatore= | Copia gli elementi della mappa su un'altra mappa. |
Iteratori
Funzioni | Descrizione |
---|---|
inizio | Restituisce un iteratore che punta al primo elemento nella mappa. |
cbegin | Restituisce un iteratore const che punta al primo elemento nella mappa. |
FINE | Restituisce un iteratore che punta alla fine passata. |
alcuni | Restituisce un iteratore costante che punta alla fine passata. |
rbegin | Restituisce un iteratore inverso che punta alla fine. |
fa | Restituisce un iteratore inverso che punta all'inizio. |
crbegin | Restituisce un iteratore inverso costante che punta alla fine. |
credere | Restituisce un iteratore inverso costante che punta all'inizio. |
Capacità
Funzioni | Descrizione |
---|---|
vuoto | Restituisce vero se la mappa è vuota. |
misurare | Restituisce il numero di elementi nella mappa. |
dimensione_massima | Restituisce la dimensione massima della mappa. |
Accesso agli elementi
Funzioni | Descrizione |
---|---|
operatore[] | Recupera l'elemento con la chiave specificata. |
A | Recupera l'elemento con la chiave specificata. |
Modificatori
Funzioni | Descrizione |
---|---|
inserire | Inserisci elemento nella mappa. |
cancellare | Cancella elementi dalla mappa. |
scambio | Scambia il contenuto della mappa. |
chiaro | Elimina tutti gli elementi della mappa. |
posizione | Costruisci e inserisci i nuovi elementi nella mappa. |
emplace_hint | Costruisci e inserisci nuovi elementi nella mappa tramite suggerimento. |
Osservatori
Funzioni | Descrizione |
---|---|
chiave_comp | Restituisce una copia dell'oggetto di confronto chiave. |
valore_comp | Restituisce una copia dell'oggetto di confronto dei valori. |
Operazioni
Funzioni | Descrizione |
---|---|
Trovare | Cerca un elemento con la chiave specificata. |
contare | Ottiene il numero di elementi corrispondenti alla chiave specificata. |
limite inferiore | Restituisce un iteratore al limite inferiore. |
limite superiore | Restituisce un iteratore al limite superiore. |
intervallo_uguale | Restituisce l'intervallo di elementi corrispondenti alla chiave specificata. |
Allocatore
Funzioni | Descrizione |
---|---|
get_allocatore | Restituisce un oggetto allocatore utilizzato per costruire la mappa. |
Funzioni sovraccaricate di non membri
Funzioni | Descrizione |
---|---|
operatore== | Controlla se le due mappe sono uguali o meno. |
operatore!= | Controlla se le due mappe sono uguali o meno. |
operatore< | Controlla se la prima mappa è inferiore alle altre oppure no. |
operatore<=< td> | Controlla se la prima mappa è inferiore o uguale all'altra oppure no. | =<>
operatore> | Controlla se la prima mappa è più grande delle altre oppure no. |
operatore>= | Controlla se la prima mappa è maggiore o uguale all'altra oppure no. |
scambio() | Scambia l'elemento di due mappe. |