Kaj so vsebniki STL v C++

Kaj So Vsebniki Stl V C



V C++, STL (standardna knjižnica predlog), zabojniki so predmeti, ki se uporabljajo za shranjevanje zbirk drugih predmetov. Delujejo podobno kot predloge razredov in podpirajo veliko število tipov elementov ter zagotavljajo članske funkcije za dostop do svojih elementov neposredno ali prek iteratorjev.

Vrste vsebnikov C++ STL

V C++ obstajajo tri vrste STL zabojniki , ki so navedeni spodaj:







1: Zaporedni vsebniki

V C++ nam zaporedni vsebniki omogočajo shranjevanje elementov, ki jih je mogoče pridobiti zaporedno. te zabojniki so kodirani kot nizi ali povezani seznami podatkovnih struktur. Nekatere vrste zaporednih vsebnikov so navedene spodaj.



  • Vektor: To je niz dinamične velikosti, ki je shranjen v pomnilniku na neprekinjen način.
  • O čem: Predstavlja dvojno končano čakalno vrsto, ki podpira operacije vstavljanja in brisanja.
  • niz: Je statična matrika, dodeljena med prevajanjem, pri čemer je njena velikost fiksna.
  • seznam: Je dvojno povezan seznam, ki izvaja hitro vstavljanje in brisanje elementov na kateremkoli mestu na seznamu.
  • Posreduj seznam: To je enojno povezan seznam kot seznam, vendar ga lahko premikate samo v eno smer.

Primer



V tem primeru bomo uporabili vektorski razred pokazati, kako a zaporedno posoda deluje.





#include
#include
uporaba imenskega prostora std;
int main ( ) {
// inicializirati vektor int vrsta
vektor < int > številke = { 10 , 2 , 16 , 70 , 5 } ;
// natisnite vektor
cout << 'Številke so:' ;
za ( avto & i: številke )
{
cout << jaz << ', ' ;
}
vrnitev 0 ;
}

Zgornja koda prikazuje uporabo zaporedno zabojniki v vektorski obliki, ki omogoča shranjevanje nizov celih števil. Program inicializira vektor tipa integer, mu dodeli vrednosti in jih natisne s pomočjo zanke. Ta primer prikazuje, kako enostavno je shranjevanje in dostop do podatkov v C++ z uporabo zaporedni vsebnik .



2: Asociativni vsebniki

Asociativni vsebniki omogočajo shranjevanje elementov v določenem vrstnem redu, ki ga določi operator primerjave. Za razliko od zaporednih vsebnikov , vrstni red elementov v asociativni vsebniki se vzdržuje s ključi, ki uporabnikom omogočajo organiziranje in dostop do elementov. Ko je element vstavljen v asociativni vsebnik , je samodejno razvrščen na pravilnem mestu glede na svoj ključ. Te vrste vsebnikov so implementirane interno kot binarne drevesne podatkovne strukture.

The asociativno zabojniki so kategorizirani kot:

  • Zemljevid: zbirka parov ključ-vrednost, ki so bili razvrščeni z edinstvenimi ključi
  • Multimap: zbirka parov ključ-vrednost, ki so bili razvrščeni s ključi
  • Set: Unikatni ključi zbrani in urejeni po ključih.
  • Multiset: zbirka ključev, ki so bili razvrščeni s ključi

Primer

Za ponazoritev, kako an asociativno posoda dela, bomo uporabili nastavite razred v tem primeru.

#include
#include
uporaba imenskega prostora std;
int main ( )
{
// inicializirati a set int vrsta
set < int > številke = { 10 , 2 , 16 , 70 , 5 } ;
// natisni set
cout << 'Številke so:' ;
za ( avto & i: številke )
{
cout << jaz << ', ' ;
}
vrnitev 0 ;
}

Zgornja koda inicializira nabor celih števil v C++, ki je primer asociativnega vsebnika. Nabor zagotavlja, da so elementi privzeto razvrščeni v naraščajočem vrstnem redu. Koda nato natisne številke v nizu z uporabo zanke for.

3: Neurejeni asociativni vsebniki

V C++, neurejena asociativna zabojniki se uporabljajo za zagotavljanje nerazvrščenih različic an asociativno posoda . Interno so implementirani kot podatkovne strukture razpršilne tabele. The asociativno zabojniki so kategorizirani kot:

  • Neurejen zemljevid: zbirka parov ključ-vrednost, ki so bili zgoščeni z enoličnimi ključi.
  • Neurejen multimap: zbirka parov ključ-vrednost, ki je bila zgoščena z uporabo ključev.
  • Neurejen niz: zbirka edinstvenih ključev, ki so bili zgoščeni z uporabo ključev.
  • Neurejen multiset: zbirka ključev, ki so bili zgoščeni z uporabo ključev.

Primer

Da bi ponazorili, kako an neurejena asociativna posoda dela, bomo uporabili neurejen niz razred v tem primeru.

#include
#include
uporaba imenskega prostora std;
int main ( )
{
// inicializirati unordered_set int vrsta
neurejen_niz < int > številke = { 10 , 2 , 16 , 70 , 5 } ;
// natisni set
cout << 'Številke so:' ;
za ( avto & i: številke )
{
cout << jaz << ', ' ;
}
vrnitev 0 ;
}

Zaključek

STL C++ posoda je nosilni objekt za shranjevanje zbirke drugih predmetov. Delujejo podobno kot predloge razredov in podpirajo veliko število vrst elementov. V tej vadnici smo obravnavali najpogosteje uporabljene vrste vsebnikov STL C++, ki so zaporedni vsebniki, asociativni vsebniki tako dobro, kot neurejeni asociativni vsebniki .