Map (STL)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Il container map è un contenitore associativo incluso nella libreria standard del C++. La definizione di questa classe si trova nel file header <map> del namespace std.

Descrizione[modifica | modifica wikitesto]

La map è un contenitore associativo che memorizza coppie di oggetti (creati dall'utente oppure tipi base) in cui, al primo definito chiave, viene associato il secondo detto semplicemente valore. Gli oggetti inseriti nella map vengono automaticamente memorizzati in posizione ordinata rispetto alla chiave e tale ordinamanto è mantenuto in modo da minimizzare i tempi di ricerca degli elementi. Nelle map non sono ammessi duplicati delle chiavi e il tempo di accesso agli elementi è logaritmico (O(log n)).

Grazie al fatto che la map ordina automaticamente gli elementi inseriti la ricerca di questi ultimi avviene abbastanza velocemente. Al contrario dei contenitori sequenziali, le map, consentono di creare associazioni tra due tipi o tra due oggetti a scelta dell'utente ampliando, quindi, il concetto di vettore che associa ad un indice di tipo int un tipo o un oggetto scelto dall'utente. Come tutti i contenitori la map supporta l'uso di molti algoritmi inclusi nelle Standard Template Library che rendono ancora più efficiente il loro utilizzo.

Ecco un esempio di dichiarazione e inserimento per una map:

 #include <iostream>
 #include <map>
 
 using namespace std;
 int main(){
    map<string, int> m;  //crea una map da stringhe a interi
    m["casa"] = 5;       //crea l'elemento con chiave "casa" e gli assegna il valore 5
    cout<<m["casa"]<<endl;     //stampa 5
    return 0;
 }
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica