Mis on C++ STL-konteinerid

Mis On C Stl Konteinerid



Keeles C++, STL (standardmalliteek), konteinerid on objektid, mida kasutatakse teiste objektide kogude salvestamiseks. Need töötavad sarnaselt klassimallidele ja toetavad suurt hulka elemenditüüpe ning pakuvad liikmefunktsioone nende elementidele otse või iteraatorite kaudu juurde pääsemiseks.

C++ STL-konteinerite tüübid

C++-s on kolme tüüpi STL-e konteinerid , mis on loetletud allpool:







1: järjestikused konteinerid

C++-s võimaldavad järjestikused konteinerid salvestada üksusi, mida saab järjestikku hankida. Need konteinerid on kodeeritud andmestruktuuride massiivide või lingitud loenditena. Mõned järjestikuste konteinerite tüübid on toodud allpool.



  • Vektor: See on dünaamilise suurusega massiiv, mis salvestatakse mällu külgnevalt.
  • Millest: See kujutab kahe otsaga järjekorda, mis toetab nii sisestamise kui ka kustutamise toiminguid.
  • Massiiv: See on staatiline massiiv, mis eraldatakse kompileerimise ajal, säilitades samal ajal selle suuruse.
  • Loetelu: See on topeltlingitud loend, mis teostab elementide kiiret sisestamist ja kustutamist loendi mis tahes kohas.
  • Loend edasi: See on üksikult seotud loend nagu loend, kuid saate seda läbida ainult ühes suunas.

Näide



Selles näites kasutame vektori klass näidata, kuidas a järjestikused konteiner tegutseb.





#include
#include
kasutades nimeruumi std;
int main ( ) {
// initsialiseerida vektor int tüüp
vektor < int > numbrid = { 10 , 2 , 16 , 70 , 5 } ;
// printida vektor
cout << 'Numbrid on:' ;
jaoks ( auto & i: numbrid )
{
cout << i << ', ' ;
}
tagasi 0 ;
}

Ülaltoodud kood näitab kasutamist järjestikused konteinerid vektorvormingus, mis võimaldab salvestada täisarvu massiive. Programm lähtestab täisarvu tüüpi vektori, määrab sellele väärtused ja prindib need tsükli abil. See näide näitab, kuidas on lihtne C++-s andmeid salvestada ja neile juurde pääseda, kasutades järjestikune konteiner .



2: assotsiatiivsed konteinerid

Assotsiatiivsed konteinerid võimaldab meil salvestada elemente võrdlusoperaatori määratud kindlas järjekorras. Erinevalt järjestikused konteinerid , elementide järjekord assotsiatiivsed konteinerid Seda hoitakse võtmete abil, mis võimaldavad kasutajatel elemente korraldada ja neile juurde pääseda. Kui element sisestatakse an assotsiatiivne konteiner , sorteeritakse see automaatselt selle võtme alusel õigesse kohta. Seda tüüpi konteinerid rakendatakse sisemiselt nagu binaarpuu andmestruktuurid.

The assotsiatiivne konteinerid liigitatakse järgmiselt:

  • Kaart: võtme-väärtuste paaride kogum, mis on sorteeritud kordumatute võtmete abil
  • Multimap: võtmete-väärtuste paaride kogum, mis on sorteeritud võtmete abil
  • Määra: Unikaalsed võtmed kogutakse ja paigutatakse võtmete järgi.
  • Mitmikkomplekt: võtmete kogum, mis on sorteeritud võtmete abil

Näide

Et illustreerida, kuidas an assotsiatiivne konteiner töötab, kasutame seatud klass selles näites.

#include
#include
kasutades nimeruumi std;
int main ( )
{
// initsialiseerida a seatud int tüüp
seatud < int > numbrid = { 10 , 2 , 16 , 70 , 5 } ;
// printida seatud
cout << 'Numbrid on:' ;
jaoks ( auto & i: numbrid )
{
cout << i << ', ' ;
}
tagasi 0 ;
}

Ülaltoodud kood initsialiseerib täisarvude komplekti C++ keeles, mis on assotsiatiivse konteineri näide. Komplekt tagab, et elemendid on vaikimisi järjestatud kasvavas järjekorras. Seejärel prindib kood for-tsükli abil välja komplektis olevad numbrid.

3: järjestamata assotsiatiivsed konteinerid

C++ keeles, korrastamata assotsiatiivne konteinerid kasutatakse an sortimata versioonide esitamiseks assotsiatiivne konteiner . Neid rakendatakse sisemiselt nagu räsitabeli andmestruktuurid. The assotsiatiivne konteinerid liigitatakse järgmiselt:

  • Tellimata kaart: võtme-väärtuste paaride kogum, mis on räsistatud unikaalsete võtmete abil.
  • Järjestamata multikaart: võtme-väärtuste paaride kogu, mis on võtmete abil räsistatud.
  • Tellimata komplekt: unikaalsete võtmete kogu, mis on võtmete abil räsistatud.
  • Järjestamata multikomplekt: võtmete kogum, mis on räsistatud võtmete abil.

Näide

Et illustreerida, kuidas an korrastamata assotsiatiivne konteiner töötab, kasutame tellimata komplekt klass selles näites.

#include
#include
kasutades nimeruumi std;
int main ( )
{
// initsialiseerima int tüüp
tellimata_komplekt < int > numbrid = { 10 , 2 , 16 , 70 , 5 } ;
// printida seatud
cout << 'Numbrid on:' ;
jaoks ( auto & i: numbrid )
{
cout << i << ', ' ;
}
tagasi 0 ;
}

Järeldus

STL C++ konteiner on hoidjaobjekt, kuhu salvestada teiste objektide kogu. Need töötavad sarnaselt klassimallidele ja toetavad suurt hulka elemenditüüpe. Selles õpetuses käsitlesime kõige sagedamini kasutatavaid STL C++ konteinerite tüüpe, mis on järjestikused konteinerid, assotsiatiivsed konteinerid sama hästi kui järjestamata assotsiatiivsed konteinerid .