Kas ir STL konteineri valodā C++

Kas Ir Stl Konteineri Valoda C



Programmā C++, STL (standarta veidņu bibliotēka), konteineri ir objekti, ko izmanto citu objektu kolekciju glabāšanai. Tie darbojas līdzīgi klases veidnēm un atbalsta lielu skaitu elementu veidu un nodrošina dalībnieku funkcijas, lai piekļūtu elementiem tieši vai caur iteratoriem.

C++ STL konteineru veidi

C++ valodā ir trīs STL veidi konteineri , kas ir uzskaitīti zemāk:







1: secīgi konteineri

Programmā C++ secīgie konteineri ļauj glabāt vienumus, kurus var secīgi izgūt. Šie konteineri tiek kodēti kā masīvi vai saistītie datu struktūru saraksti. Tālāk ir norādīti daži secīgo konteineru veidi.



  • Vektors: Tas ir dinamiska izmēra masīvs, kas tiek saglabāts atmiņā blakus.
  • Par ko: Tā ir divu galu rinda, kas atbalsta gan ievietošanas, gan dzēšanas darbības.
  • Masīvs: Tas ir statisks masīvs, kas tiek piešķirts kompilācijas laikā, saglabājot fiksētu tā lielumu.
  • Saraksts: Tas ir divkārši saistīts saraksts, kas veic ātru elementu ievietošanu un dzēšanu jebkurā saraksta vietā.
  • Pārsūtīt sarakstu: Tas ir atsevišķi saistīts saraksts, piemēram, saraksts, bet jūs varat to pārvietot tikai vienā virzienā.

Piemērs



Šajā piemērā mēs izmantosim vektoru klase lai parādītu, kā a secīgi konteiners darbojas.





#include
#iekļaut
izmantojot namespace std;
int galvenais ( ) {
// inicializēt vektoru int veids
vektors < starpt > cipari = { 10 , 2 , 16 , 70 , 5 } ;
// izdrukāt vektoru
cout << 'Cipari ir:' ;
priekš ( auto & es: cipari )
{
cout << i << ',' ;
}
atgriezties 0 ;
}

Iepriekš minētais kods parāda izmantošanu secīgi konteineri vektoru formātā, kas ļauj saglabāt veselu skaitļu masīvus. Programma inicializē vesela skaitļa tipa vektoru, piešķir tam vērtības un izdrukā tās, izmantojot cilpu. Šis piemērs parāda, kā ir viegli saglabāt un piekļūt datiem C++, izmantojot secīgs konteiners .



2: Asociatīvie konteineri

Asociatīvie konteineri ļauj mums saglabāt elementus salīdzināšanas operatora noteiktā secībā. Atšķirībā no secīgi konteineri , elementu secība asociatīvie konteineri tiek uzturēts, izmantojot atslēgas, kas lietotājiem ļauj sakārtot un piekļūt elementiem. Kad elements tiek ievietots an asociatīvais konteiners , tas tiek automātiski sakārtots pareizajā pozīcijā, pamatojoties uz tās atslēgu. Šāda veida konteineri tiek ieviesti iekšēji kā bināro koku datu struktūras.

The asociatīvs konteineri tiek klasificēti kā:

  • Karte: atslēgu un vērtību pāru kolekcija, kas ir sakārtoti, izmantojot unikālas atslēgas
  • Multikarte: atslēgu un vērtību pāru kolekcija, kas ir sakārtoti, izmantojot atslēgas
  • Iestatījums: Unikālās atslēgas savāktas un sakārtotas pēc atslēgām.
  • Multiset: atslēgu kolekcija, kas ir sakārtota, izmantojot atslēgas

Piemērs

Lai ilustrētu, kā an asociatīvs konteiners darbojas, mēs izmantosim iestatīt klasi šajā piemērā.

#include
#include
izmantojot namespace std;
int galvenais ( )
{
// inicializēt a komplekts no starpt veids
komplekts < starpt > cipari = { 10 , 2 , 16 , 70 , 5 } ;
// izdrukāt komplekts
cout << 'Cipari ir:' ;
priekš ( auto & es: cipari )
{
cout << i << ',' ;
}
atgriezties 0 ;
}

Iepriekš minētais kods inicializē veselu skaitļu kopu C++ valodā, kas ir asociatīvā konteinera piemērs. Komplekts nodrošina, ka elementi pēc noklusējuma tiek kārtoti augošā secībā. Pēc tam kods izdrukā komplektā esošos skaitļus, izmantojot for cilpu.

3: nesakārtoti asociatīvie konteineri

C++ valodā, nesakārtots asociatīvs konteineri tiek izmantoti, lai nodrošinātu an nešķirotās versijas asociatīvs konteiners . Tie ir iekšēji ieviesti kā jaucēj tabulas datu struktūras. The asociatīvs konteineri tiek klasificēti kā:

  • Nesakārtota karte: atslēgu un vērtību pāru kolekcija, kas ir sajaukta, izmantojot unikālas atslēgas.
  • Nesakārtota multikarte: atslēgu un vērtību pāru kolekcija, kas ir sajaukta, izmantojot atslēgas.
  • Nesakārtots komplekts: unikālu atslēgu kolekcija, kas ir sajaukta, izmantojot atslēgas.
  • Nesakārtots multiset: atslēgu kolekcija, kas ir sajaukta, izmantojot atslēgas.

Piemērs

Lai ilustrētu, kā an nesakārtots asociatīvs konteiners darbojas, mēs izmantosim nepasūtīts komplekts klasē šajā piemērā.

#include
#include
izmantojot namespace std;
int galvenais ( )
{
// inicializēt unordered_set of int veids
unordered_set < starpt > cipari = { 10 , 2 , 16 , 70 , 5 } ;
// izdrukāt komplekts
cout << 'Cipari ir:' ;
priekš ( auto & es: cipari )
{
cout << i << ',' ;
}
atgriezties 0 ;
}

Secinājums

STL C++ konteiners ir turētāja objekts citu objektu kolekcijas glabāšanai. Tie darbojas līdzīgi klases veidnēm un atbalsta lielu skaitu elementu veidu. Šajā apmācībā mēs apspriedām visbiežāk izmantotos STL C++ konteineru veidus, kas ir secīgie konteineri, asociatīvie konteineri kā arī nesakārtoti asociatīvie konteineri .