Listerne er i rækkefølge containere der tillader ikke-sammenhængende hukommelsesallokering. Sammenlignet med vektoren har listen langsom gennemløb, men når først en position er fundet, er indsættelse og sletning hurtige (konstant tid). Normalt, når vi siger en liste, taler vi om en dobbelt linket liste . Til implementering af en enkelt-linket liste bruger vi en forward_list .
std::liste er klassen for listebeholderen. Det er en del af C++ Standard Template Library (STL) og er defineret inde header-fil.
window.open javascript
Syntaks:
std::list name_of_list;>
Eksempel:
C++
xor cpp
// 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;> }> |
>
>
10 i potens 6Produktion
12 45 8 6>
I ovenstående eksempel oprettede vi et std::list-objekt med navnet gqlist og initialiserede den ved hjælp af en initializer_list. Vi kan initialisere std::list-objekterne ved at bruge mange forskellige nævnte måder her.
Nogle grundlæggende handlinger på std::list
- foran() – Returnerer værdien af det første element på listen.
- tilbage() – Returnerer værdien af det sidste element på listen.
- push_front() – Tilføjer et nyt element 'g' i begyndelsen af listen.
- skub tilbage() – Tilføjer et nyt element 'g' i slutningen af listen.
- pop_front() – Fjerner det første element på listen og reducerer størrelsen på listen med 1.
- pop_back() – Fjerner det sidste element på listen og reducerer størrelsen på listen med 1.
- indsæt() – Indsætter nye elementer på listen før elementet på en specificeret position.
- størrelse() – Returnerer antallet af elementer på listen.
- begynde() – start()-funktionen returnerer en iterator, der peger på det første element i listen.
- ende() – end()-funktionen returnerer en iterator, der peger på det teoretiske sidste element, der følger efter det sidste element.
Nedenstående eksempel viser den generelle brug af listecontainere og deres grundlæggende funktioner i C++.
Eksempel:
C++
java streng formatering
// 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;> }> |
>
bias og varians
>Produktion
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>
Ovenstående eksempel viser kun den generelle brug af std::list og dens medlemsfunktioner. Nedenstående tabel indeholder alle medlemsfunktionerne i std::list-klassen og links til deres detaljerede forklaring.
std::list Medlemsfunktioner
| Funktioner | Definition |
|---|---|
| foran() | Returnerer værdien af det første element på listen. |
| tilbage() | Returnerer værdien af det sidste element på listen. |
| push_front(g) | Tilføjer et nyt element 'g' i begyndelsen af listen. |
| push_back(g) | Tilføjer et nyt element 'g' i slutningen af listen. |
| pop_front() | Fjerner det første element på listen og reducerer størrelsen på listen med 1. |
| pop_back() | Fjerner det sidste element på listen og reducerer størrelsen på listen med 1. |
| liste::begynd() | start()-funktionen returnerer en iterator, der peger på det første element i listen. |
| liste::end() | end()-funktionen returnerer en iterator, der peger på det teoretiske sidste element, der følger efter det sidste element. |
| liste rbegin() og rend() | rbegin() returnerer en omvendt iterator, som peger på det sidste element på listen. rend() returnerer en omvendt iterator, der peger på positionen før begyndelsen af listen. |
| liste cbegin() og cend() | cbegin() returnerer en konstant random access iterator, som peger på begyndelsen af listen. cend() returnerer en konstant random access iterator, som peger mod slutningen af listen. |
| liste crbegin() og crend() | crbegin() returnerer en konstant omvendt iterator, som peger på det sidste element på listen, dvs. den omvendte begyndelse af beholderen. crend() returnerer en konstant omvendt iterator, som peger på det teoretiske element, der går forud for det første element på listen, dvs. den omvendte ende af listen. |
| tom() | Returnerer, om listen er tom(1) eller ej(0). |
| indsæt() | Indsætter nye elementer på listen før elementet på en specificeret position. |
| slette() | Fjerner et enkelt element eller en række elementer fra listen. |
| tildele() | Tildeler nye elementer til listen ved at erstatte nuværende elementer og ændre størrelsen på listen. |
| fjerne() | Fjerner alle elementer fra listen, som er lig med et givet element. |
| list::remove_if() | Bruges til at fjerne alle de værdier fra listen, der svarer til prædikatet eller betingelsen, der er givet som parameter til funktionen. |
| baglæns() | Vender listen om. |
| størrelse() | Returnerer antallet af elementer på listen. |
| list resize() | Bruges til at ændre størrelsen på en listebeholder. |
| sortere() | Sorterer listen i stigende rækkefølge. |
| liste max_size() | Returnerer det maksimale antal elementer, en listebeholder kan indeholde. |
| liste unik() | Fjerner alle duplikerede på hinanden følgende elementer fra listen. |
| list::emplace_front() og list::emplace_back() | .emplace_front()-funktionen bruges til at indsætte et nyt element i listebeholderen og konstruerer objektet på plads i begyndelsen af listen. . emplace_back()-funktionen bruges til at indsætte et nyt element i listebeholderen og konstruerer objektet på plads i slutningen af listen. |
| liste::clear() | clear()-funktionen bruges til at fjerne alle elementerne i listebeholderen, hvilket gør den til størrelse 0. |
| liste::operatør= | Denne operator bruges til at tildele nyt indhold til beholderen ved at erstatte det eksisterende indhold. |
| liste::swap() | Denne funktion bruges til at udskifte indholdet af en liste med en anden liste. |
| liste splejs () | Bruges til at overføre elementer fra en liste til en anden. |
| liste fletning() | Fletter to sorterede lister til én. |
| liste emplace() | Udvider listen ved at indsætte et nyt element på en given position, og det konstruerer objektet på plads i begyndelsen af listen, hvilket potentielt forbedrer ydeevnen ved at undgå en kopioperation |
Punkter at huske om List Container
- Det er generelt implementeret ved hjælp af en dynamisk dobbeltforbundet liste med traversering i begge retninger.
- Hurtigere indsættelse og sletning sammenlignet med arrays og vektorer.
- Det giver kun sekventiel adgang. Tilfældig adgang til ethvert mellemelement er ikke mulig
- Den er defineret som en skabelon, så den kan indeholde enhver datatype.
- Den fungerer som en usorteret liste ville, hvilket indebærer, at listens rækkefølge som standard ikke er bevaret. Der er dog teknikker til sortering.