C ++ Kartsøk

C ++ Kartsøk
“Den tilknyttede beholderen kjent som et kart muliggjør lagring av elementer i C ++ som følger av samspillet mellom et nøkkelverdipar og kartlagte data i en bestemt sekvens. De relevante nøklene i en kartbeholder brukes alltid til å organisere informasjonen på riktig måte. Ved å bruke de spesifikke tastene, kan verdiene for et kartbeholder hentes. For å hente dataene fra beholderen, brukte vi MAP :: Search () -funksjonen, som vises i overskriftsfilen .

Kart :: Search () er en innebygd funksjon i C ++ STL (Standard Template Library) som gir en iterator eller en statisk iterator som peker på stedet i kartet som nøkkelen er lokalisert. Den produserer en iterator eller en statisk iterator som refererer til kartet; Hvis nøkkelen ikke er tilgjengelig i beholderen, må du kartlegge.End () -funksjonen kalles.”

Fordeler med kart :: Search () -funksjon i C++

Std :: kartobjektets fordeler inkluderer raskt søk, inkludering og fjerning av handlinger som kan fullføres i logaritmisk tid. Finnekomponenten, som mottar en referanse til en nøkkel, tilbyr søkefunksjonen. Iteratoren til den aktuelle komponenten produseres hvis den spesifiserte tasten kan være plassert i std :: kartobjektet. Den forrige iteratoren (Map :: End ()) er gitt hvis den motsatte hånden ikke er plassert i beholderen i beholderen.

Syntaks av kart :: Search () -funksjon i C++

Her er syntaksen til Map :: Search () -funksjonen i C++.

"ELLER"

Parametere i kart :: søk () -funksjon i C++

Å spesifisere nøkkelen du kan finne i kartbeholderne er den eneste nødvendige parameteren som MAP :: Search () -funksjonen tillater.

Returnert verdi i kart :: søk () funksjon i c++

Funksjonens beregnede verdi er enten en iterator eller en konstant iterator som peker på plasseringen av nøkkelen på kartet. Hvis nøkkelen på en eller annen måte er fraværende fra kartbeholderne, vil funksjonen returnere en iterasjon eller en statisk iterasjon som peker på kartet.slutt () funksjon.

Fullføring av runtime for søkekomponent

Å finne komponenter i en std :: kartsøk () -funksjon tar o (log n) tid til å fullføre. Fordi det er intern lagring av elementer som et balanserende binært søketre (BST), selv i det verste scenariet, bør det være O (log n) sammenlignet med std :: streng. I kontrast er den ideelle casetidskompleksiteten for å finne O (1) fordi komponenter holdes i et relasjonelt tabell, og nøkkelen fungerer som en indikator når du prøver å søke i usorterte kart.

Eksempel 01: Bruk kartet :: Search () -funksjonen for å søke i komponenten med en gitt nøkkelverdi i C++

Her er følgende kodebit; Vi har brukt kartet :: Search () -funksjonen i C ++ for å finne nøkkelen der den ligger. I koden vår har vi for det første lagt til overskriftsfilen "Iostream", som er en standard input-output-strøm for objekter som cin, cout, etc. Legg deretter til "Map" -overskriftsfilen som inneholder organiserte nøkkelverdipar, der hver tast er distinkt og bare kan legges til eller fjernes. Deretter brukte vi standard "namespace std" i koden vår fordi mer enn en variabel, funksjon, klasse osv., kan ikke dele den samme identiteten innen den eksakte konteksten i C++.

#inkludere
#inkludere
ved hjelp av navneområdet STD;

Main () -metoden, som er opprettet for å starte utførelsen av kode, ble deretter gitt. I hovedfunksjonen () har vi for det første erklært en variabel “N” av datatype “Heltall”. "Kart M1" -beholderen inneholder et arrangert datasett som inneholder nøkkelverdier, og "M1" er medlem av de tilknyttede containerne i C ++ Standard Template Library. Husk at nøkler i "kart" -beholderen er eksklusiv. Som et resultat, hvis nye elementer legges til mens du bruker gjeldende nøkler, skjer ingenting. Imidlertid, hvis nøklene sammenfaller, kan noen unike medlemsfunksjoner i "kart" -beholderen legge til nye data til de eksisterende parene.

Etter det brukes “Cout” til å skrive ut den nøyaktige informasjonen som er skrevet i anførselstegn. Da brukes "CIN" til å ta innspill fra brukeren. Deretter brukes nøkkelordet "Auto" for å finne varen i "M1" -beholderen.

int main ()

int n;
Kart M1 = 1, "Hei",
2, "java",
3, "Python",
4, "Ruby",
5, "React",
6, "Angular",;
Coutn;
Auto -element = M1.finn (n);

Etter erklæringen brukes if-ests-tilstanden. I IF -uttalelsen sjekker vi varen hvis det er tilgjengelig i container M1, og skriv deretter ut varen. Hvis den ikke er i "M1" -beholderen, viser den feilmeldingen som ble skrevet i "cout".

hvis (vare != M1.slutt())

cout << "Key exists!" << endl << "The Key at index "

ellers

cout <<"Key does not exist!" << endl << "Sorry for inconvenience."
<< endl <<"Please try again with correct key index from 1 to 6";

På slutten av Main () -funksjonen vil vi returnere "exit_success" som indikerer at programmet blir utført med hell.

return exit_success;

Her er den fulle illustrasjonen av Map :: Search () -funksjonen, som er brukt for å lokalisere komponenten ved å bruke den bruker-leverte nøkkelverdien.

Etter å ha samlet programmet ovenfor, vil det vise følgende melding om at brukeren må angi nøkkelindeksen som hun/han vil finne. Brukere må oppgi nøkkelindeksen fra 1 til 6 -området.

Som du kan se nedenfor, når brukeren skriver inn 1 -nøkkelindeksen, viser den meldingen om at “nøkkelen eksisterer!”Og nøkkelen på indeks 1 er“ Hallo ”.

Hvis brukeren legger inn indeksnøkkelen over området 1 til 6, genererer kompilatoren feilmeldingen som "vær så snill, prøv igjen med riktig indeksnøkkel fra 1 til 6".

Eksempel 02: Bruk kartet :: søk () -funksjonen for å vise alle komponentene etter å ha oppdaget en komponent

La oss ta et annet eksempel for å skrive ut alle tilfeldige ordrekomponenter etter å ha oppdaget en komponent. For å forhindre problemer under sammenstilling og kodeutførelse, har vi inkludert “Bits/STDC++.h ”overskriftsfil i koden. Main () -funksjonen er initialisert etter at overskriftsbiblioteket og "namespace std" er lagt til. I hovedfunksjonen () initialiserte vi M1 -beholderen. Så settes verdier inn i tilfeldig rekkefølge. Etter den "cout" -erklæringen brukes til å skrive ut utdataene, det samme skrevet i anførselstegn. Deretter brukes "for" tilstand for å finne den posisjonen som "2" er til stede ved å bruke Find () -funksjonen. Returner deretter 0, noe som innebærer at programmet blir utført med hell.

#inkludere
ved hjelp av navneområdet STD;
int main ()

Kart M1;
M1.Sett inn (2, 101);
M1.Sett inn (1, 689);
M1.sett inn (3, 350);
M1.Sett inn (6, 991);
M1.Sett inn (4, 541);
M1.Sett inn (5, 542);
cout << "Elements from position 2 onward are: "<cout << "KEY\tELEMENT"<for (auto iterator = m1.finn (2); iterator != M1.slutt(); iterator ++)

cout
retur 0;

Her er utdataene fra det sammensatte programmet:

Konklusjon

Denne artikkelen har kommet med nok eksempler til å illustrere funksjonen til kartet :: Search () -metoden til C ++ språk. Vi har diskutert kartet :: søk () som jobber i C++. Vi har også diskutert fordelene, parametrene og returnerte verdien av kartet :: søk () -funksjonen. Til slutt har vi samlet noen eksempler for å hjelpe brukeren å søke etter komponenten med en nøkkelverdi i C++.