C ++ multimap

C ++ multimap
Oggi impareremo multimap e perché usiamo multimap. Impareremo l'implementazione della scrittura e le importanti funzioni di multimap attraverso esempi dettagliati. Ma, prima di saltare sul multimap, impareremo le basi della mappa in C ++ in modo che sia facile imparare come funzionerà il multimap.

In C ++, le mappe sono i contenitori che archiviano gli elementi di dati in coppie di valore chiave. Nelle mappe, queste coppie di valore chiave mantengono gli elementi di dati. Ciò significa che ogni chiave ha il suo valore dell'elemento, ma la chiave deve essere unica da accedere rapidamente. Per impostazione predefinita, le coppie di valore chiave sono disposte in ordine ordinato.

introduzione

In C ++, i multimaps sono il contenitore che mantiene gli elementi nelle coppie di valore chiave in modo organizzato in modo che possano funzionare in modo efficiente e rapido. Questi valori chiave vengono utilizzati per disporre gli elementi e identificati in modo univoco in modo che il contenuto relativo a tale chiave sia memorizzato nei valori mappati. L'unica differenza significativa tra il multimap e la mappa è la possibilità di chiavi ripetute che non sono uniche e usa "<” operator to compare the keys.

Sintassi

In multimap STL, scriveremo la parola chiave "modello" per passare il tipo di dati come parametro in modo da non dover scrivere il codice per ogni tipo di dati e quindi scrivere "" maggiore dell'operatore per chiudere la classe multimap.

Parametri

chiave: viene utilizzato per raccontare il tipo di chiavi per archiviare la chiave in un multimap.

tipo: viene utilizzato per raccontare il tipo di dati del valore mappato in un multimap.

confrontare: è un parametro opzionale e ti consente di confrontare i valori di due elementi come tasti di ordinamento per capire come dovrebbero essere disposti nel multimap. Come impostazione predefinita, viene utilizzato il predicato binario meno.

Alloc: viene utilizzato per allocare i valori in multimap.

Esempio

Ecco un semplice esempio del multimap. Cominciamo descrivendo l'implementazione dell'esempio e comprendiamo anche cosa abbiamo fatto in questo esempio. Ma, prima, abbiamo bisogno di un compilatore C ++ in cui scriviamo ed eseguiamo il codice di esempio. Quindi, apri il compilatore C ++.

Comprese le biblioteche di base

In ogni programma di C ++, dobbiamo includere le biblioteche importanti e di base relative al nostro programma in modo da non dover scrivere il codice della funzione predefinita di C++. Utilizzando i pacchetti, il nostro codice sarà preciso e facile da comprendere e compilerà anche in modo efficiente. Scriviamo il segno "#" per ogni pacchetto che indirizzerà il compilatore per caricare il file di intestazione. Quindi scriveremo la parola chiave "includere" in modo che il compilatore capisca che stiamo includendo qualsiasi pacchetto in C++. Quindi apriamo l'operatore "".

In questo esempio, abbiamo usato tre librerie; "Iostream" inserisce i dati dall'utente e visualizza i dati all'utente. Il secondo è "stringa", quindi se utilizziamo qualsiasi valore di stringa nell'intero programma, dobbiamo includere il pacchetto stringa e il terzo è "mappa" perché stiamo usando le tecniche di mappatura nel nostro programma.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;

Dichiarare e inizializzare le coppie di valore chiave

Quindi scriviamo la funzione principale () nel programma in modo da poter scrivere la riga di codice effettiva che vogliamo implementare. Innanzitutto, dichiareremo la tupla multimap denominata "Mulmap" della coppia di valore chiave "int" e "stringa" e inizializzano alcuni dati in essa. Per la stringa, scriviamo i dati in doppie virgolette. Quindi controlliamo le dimensioni della tupla "Mulmap" utilizzando la funzione dimensione () predefinita concatenata con "Mulmap" e quindi visualizziamo la dimensione utilizzando il metodo cout () predefinito. Per mostrare gli elementi di una tupla uno per uno, abbiamo chiamato "For Loop".

int main ()

multimap Mulmap =
1, "Islamabad",
2, "Lahore",
3, "Multan",
4, "Karachi"
;
cout << "The size of multimap is: " << mulmap.size()
<cout << "Elements in multimap are: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
per (auto itr: Mulmap)
cout << "\t" << itr.first <<"\t\t"<< itr.second << endl;

Ecco l'output della parte precedente del codice. Come vedi, ora abbiamo la dimensione della tupla multimap e gli elementi delle coppie di valore chiave.

Inserimento di nuovi dati utilizzando la funzione insert ()

Dopo aver dichiarato il multimap, vogliamo implementare una delle funzioni del multimap, che è la funzione insert (). Dato che abbiamo già inserito alcuni dati nella tupla multimap, vogliamo inserire alcuni nuovi dati. Per questo, scriveremo il nome di tupla multimap, "Mulmap", e quindi concatenare la funzione insert () con esso. Nelle parentesi Mulmap, scrivi la parola chiave "make-pair" perché stiamo passando i dati in forma di coppia in multimap e quindi scriviamo la nuova coppia in cui vogliamo inserire dati nella tupla "Mulmap" esistente.

E poi, abbiamo usato "per loop" per visualizzare i valori nella shell uno per uno in ordine ordinato. Dopo aver stampato le coppie di valore chiave, vogliamo controllare di nuovo le dimensioni della tupla "Mulmap" aggiornata, quindi abbiamo nuovamente usato la funzione Dimensione () e abbiamo superato la funzione Dimensione () nel metodo Cout () in modo che possiamo Visualizza le dimensioni del "Mulmap" all'utente.

cout << "\nInserting New Elements in Multimap: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
Mulmap.insert (make_pair (0, "rawalpindi"));
Mulmap.insert (make_pair (5, "hyderabad"));
per (auto itr: Mulmap)
cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

cout <<"Elements in multimap after updating: " << mulmap.size() << endl;

Diamo un'occhiata all'output del precedente snippet di dati su multimap, dove abbiamo inserito nuovi dati. Come vedi, le coppie di valore chiave vengono visualizzate in modo organizzato. E dopo aver aggiornato le coppie di valore chiave, abbiamo le dimensioni del multimap come 6.

Rimozione dei dati dalla funzione multimap utilizzando la funzione cancella ()

Per la rimozione degli elementi di dati dalla tupla Mulmap, utilizziamo la funzione ERASE () e passiamo la funzione nel metodo Cout () in modo da poter visualizzare la tupla "Mulmap" dopo aver rimosso gli elementi dalla tupla. Inoltre, controlliamo le dimensioni della tupla "Mulmap" usando la funzione size ().

cout<<"\nRemoving elements from multimap: \n";
cout<<"\tKEY\t\tELEMENT\n";
Mulmap.Cancella (Mulmap.inizio (), mulmap.trovare (4));
per (auto itr: Mulmap)
cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

cout <<"Elements in multimap after removing: " << mulmap.size() << endl;

Ecco l'output della parte illustrata, che abbiamo implementato sopra. Come mostrato di seguito, la dimensione della tupla "Mulmap" è 2:

Controlla il limite superiore della tupla di Mulmap esistente

Per controllare il primo elemento della tupla aggiornata di "multimap", useremo la funzione Upper_Bound () e passeremo il valore chiave alla funzione.

Cout << “\nElement on the Upper bound of multimap is: “ << endl;
cout<<”\tKEY\t\tELEMENT\n”;
cout << “\t” << mulmap.upper_bound(0)->Primo << “\t\t” << mulmap.upper_bound(0)->secondo << endl;

Come hai visto, abbiamo passato un valore 0 alla funzione Upper_bound (). Tuttavia, abbiamo il limite superiore dell'elemento chiave 4 perché ora la tupla "Mulmap" contiene solo due elementi chiave in esso e quello superiore viene visualizzato di seguito:

Controlla il limite inferiore nella tupla di Mulmap esistente

Ora, controlliamo l'ultimo elemento della tupla "Mulmap" usando la funzione inferiore_bound () del multimap e stampandolo attraverso il metodo Cout ().

cout << "\nElement on the lower bound of multimap is: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
cout << "\t" << mulmap.lower_bound(5)->Primo << "\t\t" << mulmap.lower_bound(5)->secondo << endl;

Ecco l'output del limite inferiore della tupla "Mulmap":

Alla fine, torneremo 0 alla funzione principale () e chiuderemo le parentesi graffe:

Conclusione

In questo articolo, abbiamo imparato il multimap implementando semplici esempi con spiegazioni dettagliate. Abbiamo discusso dello stile di scrittura del multimap. Abbiamo anche imparato alcune delle importanti funzioni di multimap in C ++ con una spiegazione dettagliata di ogni riga di codice.