logo

Mappa nella libreria di modelli standard C++ (STL)

Le mappe lo sono contenitori associativi che memorizzano gli elementi in modo mappato. Ogni elemento ha un valore chiave e un valore mappato. Due valori mappati non possono avere gli stessi valori chiave.

std::map è il modello di classe per i contenitori di mappe ed è definito all'interno del file di intestazione.



Funzioni membro std::map di base

Alcune funzioni di base associate a std::map sono:

  • inizio() – Restituisce un iteratore al primo elemento nella mappa.
  • FINE() – Restituisce un iteratore all'elemento teorico che segue l'ultimo elemento nella mappa.
  • misurare() – Restituisce il numero di elementi nella mappa.
  • dimensione_massima() – Restituisce il numero massimo di elementi che la mappa può contenere.
  • vuoto() – Restituisce se la mappa è vuota.
  • inserimento coppia (valore-chiave, valore mappa) – Aggiunge un nuovo elemento alla mappa.
  • cancella(posizione dell'iteratore) – Rimuove l'elemento nella posizione indicata dall'iteratore.
  • cancella(const g) – Rimuove il valore-chiave 'g' dalla mappa.
  • chiaro() – Rimuove tutti gli elementi dalla mappa.

Esempi di std::map

Gli esempi seguenti mostrano come eseguire operazioni di base sui contenitori di mappe.

Esempio 1: funzione Begin() e End()

C++








// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>mp; // Inserisci alcuni valori nella mappa mp['one'] = 1; mp['due'] = 2; mp['tre'] = 3; // Ottiene un iteratore che punta al primo elemento nella // mappa mapint>::iterator it = mp.begin(); // Itera la mappa e stampa gli elementi while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }>

>

>

Produzione

Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>

Complessità del metodo sopra:

Complessità temporale: O(n) dove n è la dimensione della mappa.

Spazio ausiliario: SU)

Esempio 2: funzione dimensione()

C++




mappa ad albero
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>carta geografica; // Inserisci alcuni valori nella mappa map['one'] = 1; mappa['due'] = 2; mappa['tre'] = 3; // Stampa la dimensione della mappa cout<< 'Size of map: ' << map.size() << endl; return 0; }>

>

>

Produzione

Size of map: 3>

Complessità del metodo sopra:

Complessità temporale: O(1).

Esempio 3: implementazione della mappa

CPP




// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::iteratore itr;> >cout <<>' The map gquiz1 is : '>;> >cout <<>' KEY ELEMENT '>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << ' '; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map gquiz2(gquiz1.begin(), gquiz1.end()); // stampa tutti gli elementi della mappa gquiz2 cout<< ' The map gquiz2 after' << ' assign from gquiz1 is : '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // remove all elements up to // element with key=3 in gquiz2 cout << ' gquiz2 after removal of' ' elements less than key=3 : '; cout << ' KEY ELEMENT '; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << ' gquiz2.erase(4) : '; cout << num << ' removed '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // lower bound and upper bound for map gquiz1 key = 5 cout << 'gquiz1.lower_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; cout << 'gquiz1.upper_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; return 0; }>

>

>

Produzione

The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>

Complessità del metodo sopra:

Complessità temporale: O(n log(n)) poiché n è la dimensione della mappa
Spazio ausiliario: SU)

Esempio 4: implementazione della mappa degli interi

C++




// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>carta geografica; // Inserisci alcuni valori nella mappa map['one'] = 1; mappa['due'] = 2; mappa['tre'] = 3; // Stampa i valori nella mappa cout<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cont<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }>

>

file aperto Java
>

Produzione

Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>

Elenco di tutte le funzioni di std::map

La tabella seguente contiene tutte le funzioni definite all'interno della classe std::map.

Funzione

Definizione

mappa::inserisci()

Inserisci elementi con una chiave particolare nel contenitore della mappa –> O(log n)

mappa:: conta()

Restituisce il numero di corrispondenze all'elemento con valore-chiave 'g' nella mappa. –> O(log n)

mappa intervallo_uguale()

Restituisce un iteratore di coppie. La coppia si riferisce ai limiti di un intervallo che comprende tutti gli elementi nel contenitore che hanno una chiave equivalente a k.

cancellazione della mappa()

Utilizzato per cancellare elementi dal contenitore –> O(log n)

rendering della mappa()

Restituisce un iteratore inverso che punta all'elemento teorico subito prima della prima coppia chiave-valore nella mappa (che è considerata la sua estremità inversa).

mappa rbegin()

Restituisce un iteratore inverso che punta all'ultimo elemento della mappa.

trova mappa()

Restituisce un iteratore all'elemento con valore-chiave 'g' nella mappa, se trovato, altrimenti restituisce l'iteratore alla fine.

mappa crbegin() e crend()

crbegin() restituisce un iteratore inverso costante che fa riferimento all'ultimo elemento nel contenitore della mappa. crend() restituisce un iteratore inverso costante che punta all'elemento teorico prima del primo elemento nella mappa.

mappa cbegin() e cend()

cbegin() restituisce un iteratore costante che fa riferimento al primo elemento nel contenitore della mappa. cend() restituisce un iteratore costante che punta all'elemento teorico che segue l'ultimo elemento nella multimappa.

mappa posto()

Inserisce la chiave e il relativo elemento nel contenitore della mappa.

mappa dimensione_massima()

Restituisce il numero massimo di elementi che un contenitore di mappa può contenere –> O(1)

mappa upper_bound()

Restituisce un iteratore al primo elemento che equivale al valore mappato con valore-chiave 'g' o che sicuramente seguirà l'elemento con valore-chiave 'g' nella mappa

operatore di mappa=

Assegna il contenuto di un contenitore a un contenitore diverso, sostituendone il contenuto corrente.

mappa lower_bound()

Restituisce un iteratore al primo elemento che è equivalente al valore mappato con valore-chiave 'g' o sicuramente non andrà prima dell'elemento con valore-chiave 'g' nella mappa –> O(log n)

mappa emplace_hint()

Inserisce la chiave e il suo elemento nel contenitore della mappa con un dato suggerimento.

mappa valore_comp()

Restituisce l'oggetto che determina come sono ordinati gli elementi nella mappa ('<' per impostazione predefinita).

mappa key_comp()

Restituisce l'oggetto che determina come sono ordinati gli elementi nella mappa ('<' per impostazione predefinita).

mappa::dimensione()

Restituisce il numero di elementi nella mappa.

mappa::vuoto()

Restituisce se la mappa è vuota

map::begin() e end()

Begin() restituisce un iteratore al primo elemento nella mappa. end() restituisce un iteratore all'elemento teorico che segue l'ultimo elemento nella mappa

mappa::operatore[]

Questo operatore viene utilizzato per fare riferimento all'elemento presente nella posizione specificata all'interno dell'operatore.

mappa::cancella()

Rimuove tutti gli elementi dalla mappa.

map::at() e map::swap()

La funzione at() viene utilizzata per restituire il riferimento all'elemento associato alla chiave k. La funzione swap() viene utilizzata per scambiare il contenuto di due mappe ma le mappe devono essere dello stesso tipo, sebbene le dimensioni possano differire.