Mitä ovat STL-säilöt C++:ssa

Mita Ovat Stl Sailot C Ssa



C++:ssa, STL:ssä (Standard Template Library), astiat ovat objekteja, joita käytetään muiden objektien kokoelmien tallentamiseen. Ne toimivat samalla tavalla kuin luokkamallit ja tukevat suurta määrää elementtityyppejä ja tarjoavat jäsentoimintoja, joilla pääset käsiksi elementteihinsä suoraan tai iteraattorien kautta.

C++ STL-säilöjen tyypit

C++:ssa on kolmenlaisia ​​STL:itä astiat , jotka on lueteltu alla:







1: Peräkkäiset säiliöt

C++:ssa peräkkäisten säiliöiden avulla voimme tallentaa kohteita, jotka voidaan hakea peräkkäin. Nämä astiat on koodattu taulukoiksi tai linkitetyiksi tietorakenteiden luetteloiksi. Joitakin peräkkäisten säiliöiden tyyppejä on esitetty alla.



  • Vektori: Se on dynaamisesti kokoinen taulukko, joka tallennetaan muistiin peräkkäin.
  • Mistä: Se edustaa kaksipäistä jonoa, joka tukee sekä lisäys- että poistotoimintoja.
  • Taulukko: Se on staattinen matriisi, joka on varattu kääntämisen aikana pitäen samalla kokonsa kiinteänä.
  • Lista: Se on kaksoislinkitetty luettelo, joka suorittaa elementtien nopean lisäyksen ja poistamisen missä tahansa luettelon kohdassa.
  • Eteenpäin lista: Se on yksitellen linkitetty luettelo kuten luettelo, mutta voit kulkea sen läpi vain yhteen suuntaan.

Esimerkki



Tässä esimerkissä käytämme vektoriluokka näyttämään kuinka a peräkkäinen kontti toimii.





#include
#sisällytä
käyttäen nimiavaruutta std;
int main ( ) {
// alusta int:n vektori tyyppi
vektori < int > numerot = { 10 , 2 , 16 , 70 , 5 } ;
// tulosta vektori
cout << 'Numerot ovat:' ;
varten ( auto & minä: numerot )
{
cout << i << ', ' ;
}
palata 0 ;
}

Yllä oleva koodi osoittaa käytön peräkkäinen astiat vektorimuodossa, joka mahdollistaa kokonaislukutaulukoiden tallentamisen. Ohjelma alustaa kokonaislukutyyppisen vektorin, määrittää sille arvot ja tulostaa ne silmukan avulla. Tämä esimerkki osoittaa, kuinka helppoa on tallentaa ja käyttää tietoja C++:ssa käyttämällä peräkkäinen säiliö .



2: Assosiatiiviset säiliöt

Assosiatiiviset säiliöt antaa meille mahdollisuuden tallentaa elementtejä vertailuoperaattorin määrittelemässä järjestyksessä. Toisin kuin peräkkäiset säiliöt , elementtien järjestys assosiatiiviset säiliöt ylläpidetään avaimilla, joiden avulla käyttäjät voivat järjestää ja käyttää elementtejä. Kun elementti lisätään an assosiaatiosäiliö , se lajitellaan automaattisesti oikeaan kohtaan avaimen perusteella. Tämän tyyppiset säiliöt on toteutettu sisäisesti kuten binääripuutietorakenteita.

The assosiatiivista astiat luokitellaan seuraavasti:

  • Kartta: kokoelma avainarvopareja, jotka on lajiteltu yksilöllisten avaimien avulla
  • Monikartta: kokoelma avainarvopareja, jotka on lajiteltu avaimilla
  • Aseta: Ainutlaatuiset avaimet kerätty ja järjestetty avainten mukaan.
  • Monisarja: kokoelma avaimia, jotka on lajiteltu avaimilla

Esimerkki

Havainnollistaaksesi kuinka an assosiatiivista kontti toimii, käytämme aseta luokka tässä esimerkissä.

#include
#include
käyttäen nimiavaruutta std;
int main ( )
{
// alusta a aseta int tyyppi
aseta < int > numerot = { 10 , 2 , 16 , 70 , 5 } ;
// tulostaa aseta
cout << 'Numerot ovat:' ;
varten ( auto & minä: numerot )
{
cout << i << ', ' ;
}
palata 0 ;
}

Yllä oleva koodi alustaa joukon kokonaislukuja C++:ssa, joka on esimerkki assosiatiivisesta säilystä. Sarja varmistaa, että elementit lajitellaan oletusarvoisesti nousevaan järjestykseen. Koodi tulostaa sitten sarjan numerot for-silmukan avulla.

3: Järjestämättömät assosiatiiviset säiliöt

C++:ssa, järjestämätön assosiaatio astiat käytetään an. lajittelemattomien versioiden tarjoamiseen assosiatiivista kontti . Ne on toteutettu sisäisesti kuten hash-taulukon tietorakenteet. The assosiatiivista astiat luokitellaan seuraavasti:

  • Järjestämätön kartta: kokoelma avainarvopareja, jotka on tiivistetty yksilöllisillä avaimilla.
  • Järjestämätön monikartta: avainarvoparikokoelma, joka on tiivistetty avaimilla.
  • Järjestämätön sarja: kokoelma ainutlaatuisia avaimia, jotka on tiivistetty avaimilla.
  • Järjestämätön monisarja: kokoelma avaimia, jotka on tiivistetty avaimilla.

Esimerkki

Havainnollistaakseen, kuinka an järjestämätön assosiaatio kontti toimii, käytämme tilaamaton setti luokkaa tässä esimerkissä.

#include
#include
käyttäen nimiavaruutta std;
int main ( )
{
// alusta int:n järjestämätön_joukko tyyppi
unordered_set < int > numerot = { 10 , 2 , 16 , 70 , 5 } ;
// tulostaa aseta
cout << 'Numerot ovat:' ;
varten ( auto & minä: numerot )
{
cout << i << ', ' ;
}
palata 0 ;
}

Johtopäätös

STL C++ kontti on haltijaobjekti muiden esineiden kokoelman tallentamiseen. Ne toimivat samalla tavalla kuin luokkamallit ja tukevat suurta määrää elementtityyppejä. Tässä opetusohjelmassa keskustelimme yleisimmin käytetyistä STL C++ -säiliötyypeistä, jotka ovat peräkkäiset säiliöt, assosiatiiviset säiliöt yhtä hyvin kuin järjestämättömät assosiatiiviset kontit .