STD -liste C ++

STD -liste C ++

I C ++ er std :: liste som en container som lagrer elementene på det ikke-gjennomførende minneplassen. "STD :: listen" implementeres som en dobbelt koblet liste. Vi kan sette inn eller fjerne ethvert element i listen som er lagret på et hvilket som helst sted, noe som gjør listene toveis og sekvensielle. Bidirectional fordi vi kan få tilgang til listeelementene fra front og baksiden av listen (fra hvilket som helst sted). Sekvensiell fordi vi kan få tilgang til elementene hvor som helst i sekvensen. Lister oppfører seg som dobbelt koblede lister. Dobbelt koblede lister kan lagre elementene sine hvor som helst i minnet, og de kan nås fra et hvilket som helst sted på kjøretiden. Listen tilhører et standard malbibliotek som matriser og vektorer, men lister tillater ikke en rask tilgang som kan sammenlignes med andre datastrukturer. La oss diskutere “STD :: liste” i denne artikkelen med praktisk implementering av lister med forskjellige operasjoner.

Integrere bibliotek

For å bruke lister i kode, må programmereren importere det nødvendige biblioteket. Biblioteket for bruk av listen er “liste”. Vi kan importere dette ved å legge til følgende gitt uttalelse:

#inkludere

Uten å importere dette biblioteket, vil vi ikke kunne bruke listen og metodene i koden.

Hvorfor bruker vi en liste?

Du må lure på hvorfor vi bruker en liste når vi har vektorer og matriser. Du vil se hvorfor vi velger en liste i stedet for en annen type datastruktur etter å ha lest argumentene som er oppført i det følgende:

  • Listen gir oss bedre innsat, oppdatering og slette funksjoner sammenlignet med andre datastrukturer.
  • Det gir god ytelse med algoritmer som utfører operasjoner som innsetting, sletting eller oppdatering.
  • Lister gir oss mange metoder for innsetting og sletting som push () og pop (), etc.

Syntaks

Mal < class_type , class Allocation = allocator > Klasseliste;

Eller

std :: liste Liste_1;

“STD” -attributtet representerer standardmalbiblioteket. Operatøren for oppløsningsoppløsning forteller kompilatoren at vi skal bruke en klasse "STD". Deretter definerer vi typen på listen inne i vinkelbrakettene. Utenfor vinkelbrakettene oppgir vi navnet på listen.

Parametere

  • Type: Typen av dataene vi lagrer på listen som i den andre uttalelsen, lagrer vi heltalldataene på listen. Det er obligatorisk å definere hvilken type data som er lagret i listen.
  • Tildeling: Objektet med en type som skjuler detaljene på listen i den. Dette er valgfritt.

Metoder

Det er flere funksjoner som vi kan gjøre ostemasseoperasjonene på listen mulig.

  • Sett inn (): Den setter inn elementene i listen.
  • push_back (): den setter inn elementene i listen bakfra.
  • push_front (): Den setter inn elementene i listen fra fronten.
  • pop_back (): Det fjerner et element fra baksiden av listen.
  • størrelse (): Den finner størrelsen på listen.
  • Back (): Det viser det siste listeelementet.

Bruk std :: liste

La oss snakke om implementering av lister i programmet ved å bruke standardliste -malen for lister.

Kode:

#inkludere
#inkludere
int main ()
std :: liste liste_1 = 8.72, 6.7, 9.4, 5.3;
std :: cout<<"The values are: \n";
for (flyteverdi: liste_1)
std :: cout << value << '\n';

Det første trinnet viser integrering av to biblioteker. Det første biblioteket inneholder alle inngangs- og utgangsmetodene som vi bruker for å få eller skrive ut verdien. Deretter er det andre biblioteket . Vi importerer dette for å få tilgang til listemetodene. Hovedfunksjonen () kalles. Her definerer vi flyttypelisten og initialiserer listen på samme måte som vi initialiserer matriser. "STD :: listen" forteller kompilatoren at vi definerer listen. I vinkelbraketter forteller “Float” til listen Type. Deretter representerer du en melding på skjermen ved å bruke kommandoen “Std :: cout”. Etter det, kjør “For” -løkken for å skrive ut listen på konsollen. Inne i parentesen til "for" definerer en float -type variabel som får tilgang til verdiene fra listen. Vi kan ikke skrive ut hele listen direkte, det er derfor vi bruker en loop. Inne i kroppen til "for", bruk "std :: cout" for å vise verdiene fra listen. Ved å gjøre dette initialiserer vi og skriver ut listene.

Produksjon

Verdiene er:
8.72
6.7
9.4
5.3

Få listestørrelse og sett inn elementer

La oss observere hvordan vi kan få størrelsen på en liste og sette inn elementene i en liste etter initialisering av listen.

Kode:

#inkludere
#inkludere
int main ()

std :: liste liste_0 1,3,4,6,7;
std :: liste :: iterator iter_0;
iter_0 = list_0.begynne();
Liste_0.Sett inn (ITER_0,5);
Liste_0.Sett inn (ITER_0,2,80);
--iter_0;
std :: cout << "List_0 contains:";
for (iter_0 = list_0.begynne(); iter_0!= Liste_0.slutt(); ++ iter_0)
std :: cout << "\t" << *iter_0;
std :: cout<<"\nThe size of the list is :"<retur 0;

Bibliotekene for å få tilgang til inngangs-/utgangsmetodene og listemetodene importeres først. Påkall deretter Main () -metoden for å definere og initialisere en liste over en heltalltype. Her definerer vi en annen liste iterator av heltallstype “ITER_0” som itererer i listen. Bruk nå start () -metoden når den returnerer iteratoren til den første elementet på listen. Deretter ønsker vi å sette inn en verdi i den første listen som er "list_0". Så vi kaller insert () -funksjonen. Den inneholder to argumenter - først er list_navnet som midlertidig lagrer det nye elementet. Og det andre argumentet er "verdien". I begynnelsen () -metoden har vi ikke gitt plasseringen eller indeksen der vi ønsker å sette inn denne nye verdien, så den lagres automatisk i den første indeksen og skyver verdien som allerede er lagret i den indeksen. Sett inn en annen verdi og pass tre parametere til Insert () -metoden. Først iterer det. For det andre forteller den antall verdier vi ønsker å sette inn. Og tredje er verdien som settes inn. Her settes “80” inn i den andre og tredje indeksen på listen. Etter innsetting utfører vi en reduksjon i listen. Skriv ut “List_0 inneholder:” Tekst på konsollen og bruk “For” -løkken for å vise listeelementene. I "for" -sløyfen, initialiser iteratoren for å begynne fra listen og fortsette å sløyfe i listen til vi kommer til slutten av listen og øker iteratoren. I kroppen av "for", vis listen over elementer som vi får med en annen liste iterator. “*Iter_0” får tilgang til plasseringen av listeelementer og “cout” skriver ut verdien på konsollen. Utenfor "for" -sløyfen, ved hjelp av størrelsen () -funksjonen, skaffer vi oss størrelsen på listen.

Produksjon:

LIST_0 inneholder: 5 80 80 1 3 4 6 7
Størrelsen på listen er: 8

Konklusjon

I denne artikkelen forklarte vi i detalj om "STD :: listen". Etter en kort introduksjon snakket vi om hvorfor vi trenger lister når det er andre containere, syntaks, metoder og praktiske eksempler på lister. Lister er enkle å bruke på grunn av deres innebygde metoder. Vi kan sette inn elementene hvor som helst på listen, og det samme gjelder utvinning. Den fungerer som en dobbelt koblet liste, men gir flere fasiliteter enn en dobbeltkoblet liste.