logo

Luettelo C++ Standard Template Libraryssa (STL)

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.