I C ++ er kart containerne som lagrer dataelementene i nøkkelverdipar. I kart beholder disse nøkkelverdiparene dataelementer. Dette betyr at hver nøkkel har sin elementverdi, men nøkkelen må være unik å få tilgang til raskt. Som standard er nøkkelverdiparene ordnet i sortert rekkefølge.
Introduksjon
I C ++ er multimaps beholderen som beholder elementene i nøkkelverdipar på en organisert måte slik at de kan jobbe effektivt og raskt. Disse nøkkelverdiene brukes til å ordne elementene og unikt identifisert slik at innholdet relatert til den tasten lagres i kartlagte verdier. Den eneste signifikante forskjellen mellom multimap og kartet er muligheten for gjentatte nøkler som ikke er unike, og det bruker "<” operator to compare the keys.
Syntaks
I Multimap STL vil vi skrive nøkkelordet "mal" for å passere datatypen som en parameter, slik at vi ikke trenger å skrive koden for hver datatype og deretter skrive "" større enn operatøren for å lukke multimap -klassen.
Parametere
nøkkel: brukes til å fortelle nøkkeltypen å lagre nøkkelen i et multimap.
type: brukes til å fortelle datatypen om kartlagt verdi i en multimap.
sammenligne: er en valgfri parameter, og den lar deg sammenligne to elementverdier som sorteringsnøkler for å finne ut hvordan de skal ordnes i multimap. Som standard brukes det binære predikatet mindre.
Alloc: brukes til å tildele verdiene i multimap.
Eksempel
Her er et enkelt eksempel på multimap. La oss starte med å beskrive implementeringen av eksemplet og også forstå hva vi har gjort i dette eksemplet. Men før det trenger vi en C ++ -kompilator der vi skriver og utfører eksempelkoden. Så åpne C ++ -kompilatoren.
Inkludert grunnleggende biblioteker
I hvert program for C ++ må vi inkludere de viktige og grunnleggende bibliotekene relatert til programmet vårt, slik at vi ikke trenger å skrive koden til den forhåndsdefinerte funksjonen til C++. Ved å bruke pakker vil koden vår være presis og lett å forstå, og den vil også samles effektivt. Vi skriver “#” -tegnet for hver pakke som vil lede kompilatoren til å laste over toppfilen. Så skriver vi "Inkluder" nøkkelord slik at kompilatoren vil forstå at vi inkluderer en hvilken som helst pakke i C++. Så åpner vi “” -operatøren.
I dette eksemplet har vi brukt tre biblioteker; “Iostream” legger inn dataene fra brukeren og viser dataene til brukeren. Det andre er "String", så hvis vi bruker noen strengverdi i hele programmet, må vi inkludere strengpakken, og den tredje er "Map" fordi vi bruker kartleggingsteknikker i programmet vårt.
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
Erklære og initialisere nøkkelverdiparene
Så skriver vi hovedfunksjonen () i programmet slik at vi kan skrive den faktiske kodelinjen vi ønsker å implementere. Først vil vi erklære multimap-tupelen som heter "Mulmap" av nøkkelverdiparet "int" og "streng" og initialisere noen data i den. For streng skriver vi dataene i doble anførselstegn. Så sjekker vi størrelsen på "Mulmap" -tupelen ved å bruke den forhåndsdefinerte størrelsen () -funksjonen sammen med "Mulmap" og deretter vise størrelsen ved å bruke den forhåndsdefinerte COUT () -metoden. For å vise elementene i en tuple en etter en, har vi kalt "for loop".
int main ()
multimapmulmap =
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";
for (auto itr: mulmap)
cout << "\t" << itr.first <<"\t\t"<< itr.second << endl;
Her er utgangen fra den forrige delen av koden. Som du ser, nå har vi multimap-tuple-størrelsen og nøkkelverdiparene 'elementer.
Sette inn nye data ved å bruke Insert () -funksjonen
Etter å ha erklært multimap, ønsker vi å implementere en av funksjonene til multimap, som er innsat () -funksjonen. Siden vi allerede har satt inn noen data i multimap -tupelen, ønsker vi å sette inn noen nye data. For det vil vi skrive multimap -tupeltnavnet, “Mulmap,” og deretter sammenkoble innsatsen () -funksjonen med den. I Mulmap-parenteser, skriv nøkkelordet “Make-Pair” fordi vi passerer data i parform i Multimap, og skriver deretter det nye paret der vi ønsker å sette inn data i den eksisterende “Mulmap” -tupelen.
Og så brukte vi "for loop" for å vise verdiene i skallet en etter en i sortert rekkefølge. Etter å ha skrevet ut nøkkelverdiparene, ønsker vi å sjekke igjen på størrelse med den oppdaterte “Mulmap” -tupelen, så vi har igjen brukt størrelsesfunksjonen og passert størrelsen () -funksjonen i Cout () -metoden slik at vi kan Vis størrelsen på "Mulmap" til brukeren.
cout << "\nInserting New Elements in Multimap: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
Mulmap.sett inn (make_pair (0, "rawalpindi"));
Mulmap.Sett inn (make_pair (5, "Hyderabad"));
for (auto itr: mulmap)
cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;
cout <<"Elements in multimap after updating: " << mulmap.size() << endl;
La oss se på utdataene fra det forrige datautdraget på Multimap, der vi har satt inn nye data. Som du ser vises nøkkelverdipar på en organisert måte. Og etter å ha oppdatert nøkkelverdiparene, har vi størrelsen på multimap som 6.
Fjerne data fra multimap ved å bruke sletting () -funksjon
For å fjerne dataelementer fra mulmap -tupelen, bruker vi sletting () -funksjon og passerer funksjonen i cout () -metoden slik at vi kan vise "mulmap" -tupelen etter å ha fjernet elementer fra tupelen. Så igjen, sjekker vi størrelsen på "mulmap" -tupelen ved å bruke størrelsen () -funksjonen.
cout<<"\nRemoving elements from multimap: \n";
cout<<"\tKEY\t\tELEMENT\n";
Mulmap.Slett (Mulmap.Begynn (), Mulmap.finn (4));
for (auto itr: mulmap)
cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;
cout <<"Elements in multimap after removing: " << mulmap.size() << endl;
Her er utgangen fra den illustrerte delen, som vi har implementert ovenfor. Som vist nedenfor er størrelsen på "Mulmap" -tupelen 2:
Sjekk den øvre grensen til den eksisterende Mulmap -tupelen
For å sjekke det første elementet i den oppdaterte tupelen til “Multimap”, vil vi bruke Upper_Bound () -funksjonen og gi nøkkelverdien til funksjonen.
Cout << “\nElement on the Upper bound of multimap is: “ << endl;
cout<<”\tKEY\t\tELEMENT\n”;
cout << “\t” << mulmap.upper_bound(0)->først << “\t\t” << mulmap.upper_bound(0)->sekund << endl;
Som du har sett, har vi passert en 0 -verdi til Upper_Bound () -funksjonen. Imidlertid har vi den øvre grensen til nøkkelelementet 4 fordi nå inneholder "mulmap" -tupelen bare to nøkkelelementer i den, og den øvre vises nedenfor:
Sjekk undergrensen i den eksisterende Mulmap -tupelen
La oss nå sjekke det siste elementet i "mulmap" -tupelen ved å bruke nedre_bound () -funksjonen til multimap og skrive ut den gjennom cout () -metoden.
cout << "\nElement on the lower bound of multimap is: " << endl;
cout<<"\tKEY\t\tELEMENT\n";
cout << "\t" << mulmap.lower_bound(5)->først << "\t\t" << mulmap.lower_bound(5)->sekund << endl;
Her er utgangen fra den nedre grensen til "Mulmap" -tupelen:
Til slutt vil vi returnere 0 til Main () -funksjonen og lukke de krøllete seler:
Konklusjon
I denne artikkelen har vi lært multimapet ved å implementere enkle eksempler med detaljerte forklaringer. Vi diskuterte skrivestilen til multimap. Vi har også lært noen av de viktige funksjonene til multimap i C ++ med en detaljert forklaring av hver kodeinje.