C ++ listefunksjoner

C ++ listefunksjoner
“Lister er containere for sekvenser som muliggjør konstant tidssats og sletter operasjoner overalt innenfor sekvensen, så vel som iterasjon i begge retninger. Listebeholdere implementeres som dobbeltkoblede lister, som tillater lagring av alle elementene deres på flere ikke-relaterte lagringssteder.

Det viktigste skillet mellom dem og fremoverlisteobjekter er at førstnevnte er enkeltkoblede lister, noe som betyr at de bare kan itereres fremover i bytte for å være litt mindre og mer effektive.”

C ++ -liste

Som et resultat holder en vektor ikke elementene i sammenhengende minne som en liste gjør. Siden det tar lang tid å flytte all informasjon, er innsetting og sletting midt i en vektor ganske dyrt. Koblet liste, som bruker en listebeholder i implementeringen, løser dette problemet. Liste lagrer elementene på et sammenhengende minne, men vektor lagrer på et ikke-sammenhengende minne. Ettersom det tar lang tid å flytte alle elementene, er innsetting og sletting i vektoren ganske dyre.

Lister gir toveis kommunikasjon og tilbyr et effektivt middel til å utføre innsetting og sletting av sletting.

Typer av listen

Enkeltliste

Det er den enkleste typen koblede liste, med hver node inkludert data og en peker til noden etter den som har samme type data. Siden den har en peker til følgende node, lagrer noden adressen til den noden i sekvensen. Data kan bare krysses en måte i en enkelt koblet liste.

Dobbeltkoblingsliste

Dataene og tilleggspekeren, kjent som Prior Pointer som er til stede i en enkelt koblet liste, er også til stede i en dobbelt koblet liste. Den første nodens foregående lenke i listen peker på null, akkurat som sluttnoden til listens neste node gjør.

Sirkulær dobbeltliste

En sirkulær koblet liste har alle nodene koblet sammen i en sirkel. Den siste null er fraværende. Det er to typer sirkulære koblede lister: enkeltsirkulære og dobbeltsirkulære.

Fordelene med C ++ -liste

Siden størrelsen på den koblede listen svinger mens den brukes, er det ikke noe hukommelsestap.

Det er ikke noe hukommelsestap fordi størrelsen på den koblede listen endres slik den brukes.

  • Gjennomføring: Lineære datastrukturer som stabler og køer implementeres ofte ved hjelp av tilkoblede lister.
  • Innføring og slettingstjenester: Den tilkoblede listen forenkler innsetting og sletting i stor grad. Det er ikke nødvendig å flytte et element etter at det er lagt til eller fjernet; I stedet må adressen i neste peker bare endres.

C ++ listefunksjoner

Liste :: Front ()

Den innebygde C ++ STL-funksjonslisten :: Front returnerer en referanse til den første oppføringen i en listebeholder.

Syntaks:

# liste navn.front()

Parametere:

Denne funksjonen returnerer bare en referanse til den første oppføringen i listebeholderen; den aksepterer ingen parametere.

Returverdi: Det første elementet i listebeholderen er direkte referert til av denne funksjonen.

Unntak: Når den brukes med en tom listebeholder, genererer denne funksjonen en udefinert oppførsel.

Liste tilbake ()

En direkte referanse til det endelige elementet i listebeholderen returneres av listen :: Back () -metoden i C ++ STL. Fordi liste :: end () bare leverer en iterator til den siste oppføringen, skiller denne funksjonen seg fra den.

Syntaks:

# liste navn.tilbake()

Parametere:

Det er ingen parameter; returner verdien. Det endelige elementet i listen for listebeholderen er direkte referert til av denne funksjonen.

Unntak: Det er ikke noe slikt unntak i denne metoden, men påkaller den med en tom listebeholder får C ++ til å oppføre seg på en udefinerbar måte.

Liste :: push_front ()

Den innebygde C ++ STL-metoden Push Front () brukes til å sette inn et element rett før toppelementet i en listebeholder. I tillegg økes beholderens størrelse av denne funksjonen med 1.

Syntaks:

# liste navn.push_front (datatypeverdi)

Parametere:

Dette alternativet betegner elementet som må legges til toppen av listen.

Returverdi:

Ingenting blir returnert av denne funksjonen.

Liste: push_back ()

For å sette inn et nytt element i en eksisterende listebeholder, bruk listen: Push Back () -funksjonen i C ++ STL. Det legger til elementet som skal legges til listebeholderen ved å ta det som et argument.

Syntaks:

# liste navn.push_back (verdi)

Parametere:

Det er bare en nødvendig parameter for denne funksjonen. Dette refererer til listenavnelementet som må settes inn.

Returtype: Denne funksjonens returtype er ugyldig, og den har ingen returverdi.

Liste :: POP_FRONT ()

En frontelement for en listebeholder kan fjernes ved hjelp av den innebygde C ++ STL-funksjonslisten :: Pop Front (). Som et resultat reduserer denne funksjonen størrelsen på beholderen med 1 mens du fjerner oppføringen fra listenes øverste.

Syntaks:

# liste navn.pop_front ();

Returverdi:

Ingenting blir returnert av denne funksjonen.

Liste :: Pop_back ()

Bruk den innebygde C ++ STL-metodelisten :: Pop tilbake for å fjerne et element fra en listebeholderens rygg. Med andre ord, det siste elementet i en listebeholder fjernes med denne funksjonen. Å fjerne et medlem fra listenes slutt denne funksjonen reduserer beholderens størrelse med 1.

Syntaks:

# liste navn.pop_back ();

Returverdi:

Ingenting blir returnert av denne funksjonen.

Liste :: Begynn ()

Dette skiller det fra front () -funksjonen.

Syntaks:

# liste navn.begynne()

Parametere:

Ingen parametere blir bestått.

Liste :: Rend ()

Den innebygde listen :: Rend () -metoden i C ++ STL returnerer en omvendt iterator som peker på et sted før listen start.

Syntaks:

# liste navn.Rend ()

Returverdi:

En omvendt iterator peker på et sted før listenes start blir returnert.

Liste :: Cbegin ()

Den innebygde C ++ STL-metoden Cbegin () returnerer en konstant tilfeldig tilgang iterator som peker på starten av listen.

Syntaks:

# liste navn.cbegin ()

Liste :: Cend ()

En konstant tilfeldig tilgang iterator som peker på slutten av listen returneres av den innebygde C ++ STL-metoden Cend ().

Syntaks:

# liste navn.cend ()

Liste :: Crbegin ()

Den innebygde C ++ STL-metoden Crbegin () returnerer en konstant omvendt iterator som fører til listens endelige element eller beholderens omvendte begynnelse. På grunn av iteratorens konstante natur kan ikke elementene endres eller endres.

Syntaks:

# liste navn.Crbegin ()

Liste :: Crend ()

Den innebygde C ++ STL-metoden CREND returnerer en konstant omvendt iterator koblet til det #hypotetiske elementet som kommer før det første elementet i listen eller den motsatte enden av listen. Iteratoren er konstant; Derfor kan ikke elementene endres eller oppdateres.

Syntaks:

# liste navn.Crend ()

Liste :: tom ()

For å sjekke om en bestemt listebeholder er tom eller ikke, bruk den innebygde C ++ STL-funksjonslisten :: tom (). Denne funksjonen endrer ikke listen; det bestemmer ganske enkelt om en liste er tom eller ikke eller om størrelsen er 0 eller ikke.

Syntaks:

# liste navn.tømme()

Liste :: Sett inn ()

For å sette inn oppføringer i en liste når som helst, bruk listen :: Sett inn () -funksjonen. Plasser antall elementer som skal settes inn og verdien som skal settes inn er de tre parametrene for denne funksjonen. Når det ikke er spesifisert, er antall elementer satt til en som standard.

Syntaks:

# Sett inn (pos_iter, ele_num, ele)

Liste :: Sletting ()

Den innebygde C ++ STL-funksjonen erase () brukes til å fjerne elementer fra en listebeholder. Den medfølgende listebeholderen kan brukes til å fjerne et enkelt element eller en gruppe elementer ved hjelp av denne funksjonen.

Syntaks:

# iterator list_name.Sletting (iteratorposisjon)

Parametere:

Vi passerer to parametere.

Posisjon: Når et enkelt element skal slettes ved hjelp av funksjonen, blir denne parameteren brukt. Denne parameteren refererer til en iterator som identifiserer elementet fra listebeholderen som må slettes.

Først sist: Begrepene “Parameter først” og “Parameter sist” refererer til iteratoren som peker til henholdsvis de første og siste elementene i området, som må slettes. Dette eliminerer alle rekkeviddenes elementer, inkludert elementet som iteratoren pekte på først, men unntatt elementet som iteratoren pekte på å vare.

Liste :: Tildel ()

For å tilordne verdier til en liste, bruk den innebygde C ++ STL-metoden ().

Syntaks:

# liste navn.tilordne (tell, verdi)

Parametere:

Teller: Antall verdier som kreves for å bli lagt til listenavnet.

Verdi: Fra det første elementet vil denne verdien bli tildelt et visst antall ganger. Hvis listen allerede har noen elementer, vil elementet som leveres i parameterverdien ta sin plass. Denne parameterens datatype må være den samme som listetavnets datatype.

Liste :: Fjern ()

Det eliminerer elementer som evaluerer mot en verdi. Det tar en verdi som en inngang og fjerner alle elementer fra listebeholderen hvis verdier samsvarer med verdien som er gitt som funksjonens parameter.

Syntaks:

# liste navn.Fjern (val)

Liste :: Fjern ()

Fjern () -metoden brukes til å eliminere eventuelle oppføringer fra en liste som samsvarer med en verdi spesifisert som en funksjonsparameter.

Syntaks:

# liste navn.Fjern (verdi)

Liste :: Fjern_if ()

Fjern hvis () -funksjonen brukes til å eliminere alle oppføringer fra en liste som tilfredsstiller en betingelse eller predikat som blir sendt inn som et argument.

Syntaks:

# liste navn.remove_if (predikat)

Liste :: omvendt ()

En listebeholder kan reverseres ved hjelp av den innebygde metoden omvendt () i C ++ STL. Det endrer rekkefølgen på listen over containerartikler.

Syntaks:

# liste navn.omvendt()

Liste :: størrelse ()

Med andre ord er det brukt for å bestemme størrelsen på listen.

Syntaks:

# liste navn.størrelse();

Liste :: Størrelse ()

Den justerer listebeholderens størrelse slik at de passer nøyaktig "n" elementer når du får tallet "n" som en parameter.

Syntaks:

# Liste navn.Endre størrelse (int n, verdi_type val)

Liste :: Sorter ()

Beholderens elementer kan sorteres ved å skifte dem rundt ved hjelp av sort () -funksjonen.

Syntaks:

# liste navn.sortere()

Liste :: Max_Size ()

Maks størrelse () Returnerer flest elementer en listebeholder har plass til.

Syntaks:

# liste navn.Max_Size ()

Liste :: unik ()

Eliminerer alle sammenhengende medlemmer fra listen som er duplikater. Det fungerer bare med sorterte lister.

Syntaks:

# liste navn.unik (binærpredikat navn)

Liste :: Swap ()

Ved å bruke denne funksjonen kan innholdet i to lister av samme størrelse og type byttes ut.

Syntaks:

# ListName1.SWAP (ListName2)

Liste :: Clear ()

Listebeholderens størrelse reduseres til 0 når alle elementene fjernes ved hjelp av Clear () -funksjonen.

Syntaks:

# liste navn.klar()

Liste :: operatør =

Ved hjelp av denne operatøren byttes beholderens eksisterende innhold og gitt nye oppgaver. I tillegg justerer det størrelsen for å passe til det nye innholdet.

Syntaks:

# listName1 = (listName2)

I denne artikkelen vil vi forklare forskjellige illustrasjoner av listefunksjonene.

Eksempel nr. 1

Her skal vi se hvordan listefunksjonene fungerer.

#inkludere
#inkludere
#inkludere
int main ()
std :: listMy_list = 50, 10, 30;
for (int y: my_list)
std :: cout<< y << '\n';

I denne koden innlemmer vi overskrifter, og . Så kaller vi Main () -funksjonen. La oss starte kodingen i Main () -funksjonen. I hovedfunksjonen (), legg til listen min og pass de forskjellige verdiene. Bruk "for" -løkken og initialiser "y" -variabelen og legg til verdien av "my_list" -variabelen.

Eksempel nr. 2

I dette tilfellet ser vi hvordan vi kan redusere verdien av iteratoren ved å bruke listefunksjoner.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main (void)
liste;
Liste l0 = 0, 0, 0;
Liste L9 (L0.Begynn (), L0.slutt());
Liste L15 (flytt (L0));
cout<< "Size of list 0: " << l0.size() <cout<< "List 9 contents: " <for (auto it = l9.begynne(); den != L9.slutt(); ++ det)
cout<< *it <cout<< "List 15 contents: " <for (auto it = l15.begynne(); den != L15.slutt(); ++ det)
cout<< *it <retur 0;

Her legger vi til overskriftsfiler, . Header -filen omhandler bruk av C ++ -listefunksjoner. Så bruker vi navneområdet. Sammen med dette kalte vi Main () -funksjonen. Først initialiserte vi listen; Deretter passerte vi verdiene. Vi legger til start () -funksjon for å få de 9 elementene fra den. Deretter legger vi til MOVE (), 15 elementer fra dette trekket () -funksjonen. Vi har brukt "cout" for å skrive ut uttalelsen "størrelse på liste 0". Og neste "cout" skriver ut uttalelsen "Liste 15 innhold". Til slutt bruker vi “For” -sløyfen, og deretter reduseres verdien av iteratoren etter at all denne “return0” -kommandoen er lagt inn.

Vi skaffer oss denne typen utfall etter å ha kjørt den nevnte koden.

Konklusjon

Først snakket vi om C ++ -listefunksjoner. Deretter observerer vi flere C ++ -funksjoner gjelder for listen. Vi definerte forskjellige C ++ -listefunksjoner og også syntaks. I denne artikkelen har vi kjørt forskjellige koder som inneholder C ++ -listefunksjoner. I den første illustrasjonen bruker vi en koblet liste og passerer parametrene. I det andre eksemplet bruker vi funksjonslisten og passerer parametrene i alle funksjoner.