Listat ovat järjestyksessä astiat jotka mahdollistavat ei-jatkuvan muistin varaamisen. Vektoriin verrattuna listan läpikulku on hidasta, mutta kun paikka on löydetty, lisääminen ja poistaminen ovat nopeita (vakioaika). Normaalisti kun sanomme luettelon, puhumme a kaksoislinkitetty lista . Yksittäin linkitetyn luettelon toteuttamiseen käytämme a forward_list .
std::list on List-säilön luokka. Se on osa C++ -standardimallikirjastoa (STL), ja se on määritelty sisällä otsikkotiedosto.
Syntaksi:
std::list name_of_list;>
Esimerkki:
C++
dynaaminen java-taulukko
// 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;> }> |
>
>Lähtö
12 45 8 6>
Yllä olevassa esimerkissä loimme std::list-objektin nimeltä gqlist ja alustanut sen käyttämällä iniciaation_listaa. Voimme alustaa std::list-objektit useilla eri tavoilla tässä.
Jotkut std::listin perustoiminnot
- edessä () – Palauttaa luettelon ensimmäisen elementin arvon.
- takaisin() – Palauttaa luettelon viimeisen elementin arvon.
- push_front() – Lisää uuden elementin 'g' luettelon alkuun.
- työnnä takaisin() – Lisää uuden elementin 'g' luettelon loppuun.
- pop_front() – Poistaa luettelon ensimmäisen elementin ja pienentää luettelon kokoa yhdellä.
- pop_back() – Poistaa luettelon viimeisen elementin ja pienentää luettelon kokoa yhdellä.
- insert() – Lisää uusia elementtejä luetteloon ennen elementtiä määritetyssä paikassa.
- koko() – Palauttaa luettelon elementtien määrän.
- alkaa() – begin()-funktio palauttaa iteraattorin, joka osoittaa luettelon ensimmäiseen elementtiin.
- loppu () – end()-funktio palauttaa iteraattorin, joka osoittaa viimeistä elementtiä seuraavaan teoreettiseen viimeiseen elementtiin.
Alla oleva esimerkki havainnollistaa luettelosäiliöiden yleistä käyttöä ja niiden perustoimintoja C++:ssa.
Esimerkki:
base64 javascriptin purku
C++
// 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 it;> >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;> }> |
>
>Lähtö
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>
Yllä oleva esimerkki havainnollistaa vain std::list:n yleistä käyttöä ja sen jäsentoimintoja. Alla oleva taulukko sisältää kaikki std::list-luokan jäsenfunktiot ja linkit niiden yksityiskohtaiseen selostukseen.
java yhteys mysql
std::list Member Functions
| Toiminnot | Määritelmä |
|---|---|
| edessä () | Palauttaa luettelon ensimmäisen elementin arvon. |
| takaisin() | Palauttaa luettelon viimeisen elementin arvon. |
| push_front(g) | Lisää uuden elementin 'g' luettelon alkuun. |
| push_back(g) | Lisää uuden elementin 'g' luettelon loppuun. |
| pop_front() | Poistaa luettelon ensimmäisen elementin ja pienentää luettelon kokoa yhdellä. |
| pop_back() | Poistaa luettelon viimeisen elementin ja pienentää luettelon kokoa yhdellä. |
| lista::begin() | begin()-funktio palauttaa iteraattorin, joka osoittaa luettelon ensimmäiseen elementtiin. |
| lista::end() | end()-funktio palauttaa iteraattorin, joka osoittaa viimeistä elementtiä seuraavaan teoreettiseen viimeiseen elementtiin. |
| lista rbegin() ja rend() | rbegin() palauttaa käänteisen iteraattorin, joka osoittaa luettelon viimeiseen elementtiin. rend() palauttaa käänteisen iteraattorin, joka osoittaa kohtaan ennen listan alkua. |
| lista cbegin() ja cend() | cbegin() palauttaa jatkuvan hajasaantiiteraattorin, joka osoittaa luettelon alkuun. cend() palauttaa jatkuvan hajasaantiiteraattorin, joka osoittaa luettelon loppuun. |
| lista crbegin() ja crend() | crbegin() palauttaa vakion käänteisen iteraattorin, joka osoittaa luettelon viimeiseen elementtiin eli säilön käänteiseen alkuun. crend() palauttaa vakion käänteisen iteraattorin, joka osoittaa luettelon ensimmäistä elementtiä edeltävään teoreettiseen elementtiin eli listan kääntöpäähän. |
| tyhjä() | Palauttaa onko lista tyhjä(1) vai ei(0). |
| insert() | Lisää uusia elementtejä luetteloon ennen elementtiä määritetyssä paikassa. |
| Erase() | Poistaa luettelosta yksittäisen elementin tai elementtialueen. |
| assign() | Määrittää luetteloon uusia elementtejä korvaamalla nykyiset elementit ja muuttamalla luettelon kokoa. |
| Poista() | Poistaa luettelosta kaikki elementit, jotka vastaavat tiettyä elementtiä. |
| lista::remove_if() | Käytetään poistamaan luettelosta kaikki arvot, jotka vastaavat funktion parametrina annettua predikaattia tai ehtoa. |
| käänteinen() | Kääntää luettelon. |
| koko() | Palauttaa luettelon elementtien määrän. |
| listan kokoa() | Käytetään luettelosäiliön koon muuttamiseen. |
| järjestellä() | Lajittelee luettelon kasvavaan järjestykseen. |
| lista max_size() | Palauttaa enimmäismäärän elementtejä, jotka luettelosäiliö voi sisältää. |
| lista ainutlaatuinen() | Poistaa luettelosta kaikki päällekkäiset peräkkäiset elementit. |
| list::emplace_front() ja list::emplace_back() | .emplace_front()-funktiota käytetään lisäämään uusi elementti luettelosäiliöön ja rakentamaan objektin paikoilleen luettelon alkuun. . emplace_back()-funktiota käytetään lisäämään uusi elementti luettelosäiliöön ja rakentamaan objektin paikoilleen luettelon loppuun. |
| lista::clear() | Clear()-funktiota käytetään poistamaan kaikki luettelosäiliön elementit, mikä tekee siitä koon 0. |
| lista::operaattori= | Tätä operaattoria käytetään uuden sisällön määrittämiseen säiliöön korvaamalla olemassa oleva sisältö. |
| lista::swap() | Tätä toimintoa käytetään yhden luettelon sisällön vaihtamiseen toiseen luetteloon. |
| lista liitos() | Käytetään elementtien siirtämiseen luettelosta toiseen. |
| lista yhdistä() | Yhdistää kaksi lajiteltua luetteloa yhdeksi. |
| lista emplace() | Laajentaa luetteloa lisäämällä uuden elementin tiettyyn kohtaan ja rakentaa objektin paikalleen luettelon alkuun, mikä saattaa parantaa suorituskykyä välttämällä kopiointitoimintoa |
Muistettavat asiat luettelosäilöstä
- Se toteutetaan yleensä käyttämällä dynaamista kaksoislinkitettyä listaa, joka kulkee molempiin suuntiin.
- Nopeampi lisäys- ja poistotoiminto taulukoihin ja vektoreihin verrattuna.
- Se tarjoaa vain peräkkäisen pääsyn. Random Access mihinkään keskielementtiin ei ole mahdollista
- Se on määritelty malliksi, joten se voi sisältää minkä tahansa tietotyypin.
- Se toimii kuten lajittelematon luettelo, mikä tarkoittaa, että oletusarvoisesti luettelon järjestystä ei säilytetä. Lajittelutekniikoita on kuitenkin olemassa.