Menu
Coddy logo textTech

Mappa

Lezione 9 di 23 del corso C++ - Libreria standard dei template di Coddy.

Map è un contenitore associativo che memorizza elementi costituiti da una combinazione di un valore chiave e di un valore associato, seguendo un ordine specifico.


 

Ogni elemento ha un valore chiave univoco. Inoltre, per impostazione predefinita, gli elementi vengono memorizzati in ordine crescente in base ai valori chiave. 


Vediamo quindi come implementare le mappe in C++. Per prima cosa, dobbiamo includere il file header map con #include <map>.
La sintassi per inizializzare la map di C++ è la seguente:

map<key_DataType, value_DataType> map_name ;

Per dichiarare una map come quella qui sopra, che ha valori string come chiavi e interi come valori corrispondenti, usiamo quanto segue: 

map<string, int> myMap;

Ora dobbiamo imparare come inserire elementi (coppie chiave-valore) nella map. Abbiamo due metodi per inserire nuove coppie chiave-valore nella map.

Il primo metodo consiste nell'usare il segno di uguale. 

map_name[key] = value;

Questo memorizzerà nella map il valore di 'value' con la chiave 'key'.

myMap["apple"] = 3;

cout << myMap["apple"];
Output:
3

Il metodo successivo consiste nell'usare la funzione insert(). La funzione insert aggiunge alla map una nuova coppia chiave-valore con la chiave e il valore specificati.

map_name.insert({key, value});
myMap.insert({"banana", 1});

cout << myMap["banana"];
Output:
1

Metodi di Map

MetodoFunzionalità
begin()Restituisce un iteratore che punta al primo elemento della map
size()Restituisce il numero di elementi nella map
empty()Restituisce se la map è vuota (1) oppure no (0)
erase()Rimuove dalla map la coppia con il valore chiave specificato
clear()Rimuove tutti gli elementi dalla map
challenge icon

Sfida

Medio

Vengono forniti 5 nomi e punteggi in input. I nomi e i punteggi vengono inseriti alternandoli: si inserisce un nome, poi si inserisce il punteggio corrispondente al nome inserito prima, e così via. 
Dopo i 10 input, viene inserito un altro numero che rappresenta quanti punteggi dei nomi inseriti dovresti visualizzare, uno per ogni nome, su una nuova riga.

 

Input
John 25
Ben 38
Ana 70
Jacob 95
Drake 50
3
Ben
Drake
Jacob
Output
38
50
95

Provalo tu

#include <map>
#include <iostream>

using namespace std;

int main()
{
    // Enter your code here

    return 0;
}

Tutte le lezioni di C++ - Libreria standard dei template

Esercitati da solo: Compilatore C++ online