Lister er i rekkefølge containere som tillater ikke-sammenhengende minneallokering. Sammenlignet med vektoren har listen langsom traversering, men når en posisjon er funnet, er innsetting og sletting rask (konstant tid). Vanligvis, når vi sier en liste, snakker vi om en dobbeltlenket liste . For å implementere en enkeltlenket liste bruker vi en forward_list .
std::liste er klassen til listebeholderen. Det er en del av C++ Standard Template Library (STL) og er definert inne header-fil.
window.open javascript
Syntaks:
std::list name_of_list;>
Eksempel:
C++
funksjoner i c
// C++ program to demonstrate the use of list containers> #include> #include> using> namespace> std;> int> main()> {> >// defining list> >list<>int>>gqlist{12,45,8,6};> >for> (>auto> i : gqlist) {> >cout << i <<>' '>;> >}> >return> 0;> }> |
>
>
når ble skolen oppfunnetProduksjon
12 45 8 6>
I eksemplet ovenfor opprettet vi et std::list-objekt med navn gqlist og initialiserte den ved å bruke en initializer_list. Vi kan initialisere std::list-objektene ved å bruke mange forskjellige måter som er nevnt her.
Noen grunnleggende operasjoner på std::list
- front() – Returnerer verdien til det første elementet i listen.
- tilbake() – Returnerer verdien til det siste elementet i listen.
- push_front() – Legger til et nytt element 'g' i begynnelsen av listen.
- push_back() – Legger til et nytt element 'g' på slutten av listen.
- pop_front() – Fjerner det første elementet i listen, og reduserer størrelsen på listen med 1.
- pop_back() – Fjerner det siste elementet i listen, og reduserer størrelsen på listen med 1.
- sett inn() – Setter inn nye elementer i listen før elementet på en spesifisert posisjon.
- størrelse() – Returnerer antall elementer i listen.
- begynne() – start()-funksjonen returnerer en iterator som peker til det første elementet i listen.
- slutt() – end()-funksjonen returnerer en iterator som peker til det teoretiske siste elementet som følger etter det siste elementet.
Eksempelet nedenfor viser den generelle bruken av listebeholdere og deres grunnleggende funksjoner i C++.
Eksempel:
C++
java-strengformatering
// C++ program to demonstrate the implementation of List> #include> #include> #include> using> namespace> std;> // function for printing the elements in a list> void> showlist(list<>int>>g)> {> >list<>int>>::iterator det;> >for> (it = g.begin(); it != g.end(); ++it)> >cout <<>' '> << *it;> >cout <<>'
'>;> }> // Driver Code> int> main()> {> >list<>int>>gqlist1, gqlist2;> >for> (>int> i = 0; i <10; ++i) {> >gqlist1.push_back(i * 2);> >gqlist2.push_front(i * 3);> >}> >cout <<>'
List 1 (gqlist1) is : '>;> >showlist(gqlist1);> >cout <<>'
List 2 (gqlist2) is : '>;> >showlist(gqlist2);> >cout <<>'
gqlist1.front() : '> << gqlist1.front();> >cout <<>'
gqlist1.back() : '> << gqlist1.back();> >cout <<>'
gqlist1.pop_front() : '>;> >gqlist1.pop_front();> >showlist(gqlist1);> >cout <<>'
gqlist2.pop_back() : '>;> >gqlist2.pop_back();> >showlist(gqlist2);> >cout <<>'
gqlist1.reverse() : '>;> >gqlist1.reverse();> >showlist(gqlist1);> >cout <<>'
gqlist2.sort(): '>;> >gqlist2.sort();> >showlist(gqlist2);> >return> 0;> }> |
>
skjevhet og varians
>Produksjon
List 1 (gqlist1) is : 0 2 4 6 8 10 12 14 16 18 List 2 (gqlist2) is : 27 24 21 18 15 12 9 6 3 0 gqlist1.front() : 0 gqlist1.back() : 18 gqlist1.pop_front() : 2 4 6 8 10 12 14 16 18 gqlist2.pop_back() : 27 24 21 18 15 12 9 6 3 gqlist1.reverse() : 18 16 14 12 10 8 6 4 2 gqlist2.sort(): 3 6 9 12 15 18 21 24 27>
Eksemplet ovenfor viser bare den generelle bruken av std::list og dens medlemsfunksjoner. Tabellen nedenfor gir alle medlemsfunksjonene til std::list-klassen og lenker til deres detaljerte forklaring.
std::list Medlemsfunksjoner
| Funksjoner | Definisjon |
|---|---|
| front() | Returnerer verdien til det første elementet i listen. |
| tilbake() | Returnerer verdien til det siste elementet i listen. |
| push_front(g) | Legger til et nytt element 'g' i begynnelsen av listen. |
| push_back(g) | Legger til et nytt element 'g' på slutten av listen. |
| pop_front() | Fjerner det første elementet i listen, og reduserer størrelsen på listen med 1. |
| pop_back() | Fjerner det siste elementet i listen, og reduserer størrelsen på listen med 1. |
| liste::begynn() | begin()-funksjonen returnerer en iterator som peker til det første elementet i listen. |
| liste::end() | end()-funksjonen returnerer en iterator som peker til det teoretiske siste elementet som følger etter det siste elementet. |
| lister opp rbegin() og rend() | rbegin() returnerer en omvendt iterator som peker til det siste elementet i listen. rend() returnerer en omvendt iterator som peker til posisjonen før begynnelsen av listen. |
| liste cbegin() og cend() | cbegin() returnerer en konstant tilfeldig tilgang iterator som peker til begynnelsen av listen. cend() returnerer en konstant tilfeldig tilgang iterator som peker til slutten av listen. |
| liste crbegin() og crend() | crbegin() returnerer en konstant omvendt iterator som peker til det siste elementet i listen, dvs. reversert begynnelsen av beholderen. crend() returnerer en konstant omvendt iterator som peker på det teoretiske elementet foran det første elementet i listen, dvs. den motsatte enden av listen. |
| tømme() | Returnerer om listen er tom(1) eller ikke(0). |
| sett inn() | Setter inn nye elementer i listen før elementet på en spesifisert posisjon. |
| viske ut() | Fjerner et enkelt element eller en rekke elementer fra listen. |
| tildele() | Tildeler nye elementer til listen ved å erstatte gjeldende elementer og endre størrelsen på listen. |
| fjerne() | Fjerner alle elementene fra listen, som er lik et gitt element. |
| list::remove_if() | Brukes til å fjerne alle verdiene fra listen som tilsvarer predikatet eller betingelsen gitt som en parameter til funksjonen. |
| omvendt() | Reverserer listen. |
| størrelse() | Returnerer antall elementer i listen. |
| endre størrelse på liste() | Brukes til å endre størrelse på en listebeholder. |
| sortere() | Sorterer listen i økende rekkefølge. |
| liste max_size() | Returnerer det maksimale antallet elementer en listebeholder kan inneholde. |
| liste unik() | Fjerner alle dupliserte påfølgende elementer fra listen. |
| list::emplace_front() og list::emplace_back() | .emplace_front()-funksjonen brukes til å sette inn et nytt element i listebeholderen og konstruerer objektet på plass i begynnelsen av listen. . emplace_back()-funksjonen brukes til å sette inn et nytt element i listebeholderen, og konstruerer objektet på plass på slutten av listen. |
| list::clear() | clear()-funksjonen brukes til å fjerne alle elementene i listebeholderen, og dermed gjøre den til størrelse 0. |
| liste::operatør= | Denne operatøren brukes til å tilordne nytt innhold til beholderen ved å erstatte det eksisterende innholdet. |
| liste::bytte() | Denne funksjonen brukes til å bytte innholdet i en liste med en annen liste. |
| liste spleise() | Brukes til å overføre elementer fra en liste til en annen. |
| liste flette() | Slår sammen to sorterte lister til én. |
| list emplace() | Utvider listen ved å sette inn et nytt element på en gitt posisjon, og det konstruerer objektet på plass i begynnelsen av listen, noe som potensielt forbedrer ytelsen ved å unngå en kopieringsoperasjon |
Punkter å huske om listebeholder
- Det er generelt implementert ved å bruke en dynamisk dobbeltkoblet liste med traversering i begge retninger.
- Raskere inn- og sletteoperasjon sammenlignet med matriser og vektorer.
- Den gir kun sekvensiell tilgang. Tilfeldig tilgang til et mellomelement er ikke mulig
- Den er definert som en mal, slik at den kan inneholde alle typer data.
- Den fungerer som en usortert liste, noe som innebærer at listens rekkefølge som standard ikke er bevart. Det finnes imidlertid teknikker for sortering.