STL v jeziku c ++: vse, kar morate vedeti



Ta članek vam bo zagotovil podrobno in celovito znanje o STL v jeziku C ++ ter tudi predstavo o različnih vsebnikih.

Standardna knjižnica predlog (STL) je nabor razredov predlog C ++, ki nudijo skupne programske strukture podatkov in funkcije, kot so seznami, skladi, nizi itd. V tem članku o STL v članku C ++ bomo obravnavali naslednje kazalce:

Nadaljujemo s tem člankom o STL v jeziku C ++





Predloge C ++

C ++ nam ponuja funkcijo predlog, ki funkcijam in razredom omogoča delovanje s splošnimi tipi. To omogoča vnovično uporabo funkcije ali razreda in ji omogoča, da deluje na številnih različnih vrstah podatkov, ne da bi se za vsako posebej prepisali.

Nadaljujemo s tem člankom o STL v jeziku C ++



Splošne funkcije in STL

Med programiranjem večkrat obstaja potreba po ustvarjanju funkcij, ki izvajajo enake operacije, vendar delujejo z različnimi tipi podatkov. Da bi rešili to težavo, ima C ++ funkcijo za ustvarjanje ene generične funkcije namesto številnih funkcij, ki lahko s parametrom predloge delujejo z različnimi vrstami podatkov. Zbirka teh generičnih razredov in funkcij se imenuje Standard Template Library (STL)

Komponente STL, ki so zdaj del standardne knjižnice C ++, so definirane v imenskem prostoru std. Zato jih moramo uporabiti za uporabo direktive namespace, da jih uvozimo v naš program.

Sintaksa:



Uporaba imenskega prostora std

STL ima tri komponente

  • Zabojniki

  • Algoritmi

  • Iteratorji

Te tri komponente v sinergiji sodelujejo med seboj in zagotavljajo podporo različnim programskim rešitvam. Algoritem uporablja iteratorje za izvajanje operacije, shranjene v posodah.

Vsebnik je predmet, ki organizirano shrani podatke v pomnilnik. Posode v STL izvajajo razredi predloge, zato jih je mogoče enostavno spremeniti in prilagoditi tako, da vsebujejo različne vrste podatkov.

Postopek, ki se uporablja za obdelavo podatkov v vsebnikih, je opredeljen kot algoritem. STL vključuje veliko različnih vrst algoritmov za podporo nalogam, kot so inicializacija, iskanje, kopiranje, razvrščanje in združevanje, kopiranje, razvrščanje in združevanje. Algoritme izvajajo funkcije predloge.

Ponavljalec je mogoče definirati kot objekt, ki kaže na element v vsebniku. Z iteratorji se lahko premikate po vsebini posod. Z iteratorji se ravna tako kot s kazalci. Lahko jih povečujemo ali zmanjšujemo. Iteratorji algoritem povežejo s kontejnerji in igrajo ključno vlogo pri manipulaciji s podatki, shranjenimi v vsebnikih.

Container-STL-in-C++

Nadaljujemo s tem člankom o STL v jeziku C ++

Zabojniki

STL opredeljuje deset zabojnikov, ki so razvrščeni v tri kategorije.

Zabojniki

Opis

Datoteka glave

Iterator

Vektor

Lahko ga definiramo kot dinamično matriko. Omogoča neposreden dostop do katerega koli elementa.

Naključni dostop

Seznam

Je dvosmerni linearni seznam. Omogoča vstavljanje in brisanje kjer koli

Dvosmerna

in

To je dvojna vrsta. Omogoča vstavljanje in brisanje na obeh koncih. Omogoča neposreden dostop do katerega koli elementa.

Naključni dostop

nastavite

Je pridruženi vsebnik za shranjevanje unikatnih kompletov. Omogoča hitro iskanje.

Dvosmerna

multiset

Je pridruženi vsebnik za shranjevanje neenotnih kompletov.

Dvosmerna

zemljevid

Je pridruženi vsebnik za shranjevanje unikatnih parov ključ / vrednost. Vsak ključ je povezan samo z eno vrednostjo.

Dvosmerna

večslika

Je pridruženi vsebnik za shranjevanje ključa / vrednosti, v katerem je lahko en ključ povezan z več kot eno vrednostjo (preslikava ena proti več). Omogoča iskanje po ključih.

Dvosmerna

sklad

Standardni sklad sledi zadnji v prvem izhodu (LIFO)

Brez iteratorja

čakalna vrsta

Standardna čakalna vrsta sledi prvi v prvem ven (FIFO)

Brez iteratorja

prednostna vrsta

Prvi element ven je vedno element z najvišjo prioriteto

Brez iteratorja

Zabojniki za zaporedje

Zabojniki za zaporedje hranijo elemente v linearnem vrstnem redu. Vsi elementi so med seboj povezani s svojim položajem vzdolž črte. Omogočajo vstavljanje elementa in vsi podpirajo več operacij nad njimi.

STL ponuja tri vrste elementov zaporedja:

  • Vektor
  • Seznam
  • in

Pridruženi zabojniki:

Zasnovani so tako, da lahko s ključi podpirajo neposreden dostop do elementov. Niso zaporedni. Obstajajo štiri vrste

asociativni zabojniki:

  1. Nastavite
  2. Multiset
  3. Zemljevid
  4. Multimap

Vsi zgoraj navedeni vsebniki shranjujejo podatke v strukturi, imenovani drevo, ki omogoča hitro

iskanje, brisanje in vstavljanje v nasprotju z zaporednimi. Nabor vsebnikov ali večnabor lahko shrani različne predmete in nudi operacije za njihovo manipulacijo z uporabo vrednosti kot ključev.

Map ali Multimap se uporabljata za shranjevanje elementov v paru, ki se imenuje ključ in drugi

imenuje vrednost.

Izvedeni zabojniki:

STL ponuja tri izpeljane vsebnike, in sicer stack, queue in prior_queue. Ti so znani tudi kot adapterji za vsebnike.

Obstajajo tri vrste pridobljenih vsebnikov:

1. Zložite

2. Čakalna vrsta

3. Prednostna_vrsta

Iz različnih vsebnikov zaporedja je mogoče enostavno ustvariti sklade, čakalno vrsto in prednostno vrsto. Izpeljani vsebniki ne podpirajo iteratorjev, zato jih ne moremo uporabljati za obdelavo podatkov. Podpirajo pa funkcijo dveh članov pop () in push () za izvajanje operacij brisanja in vstavljanja.

Nadaljujemo s tem člankom o STL v jeziku C ++

Algoritmi

Algoritmi so funkcije, ki jih je na splošno mogoče uporabiti v različnih vsebnikih za obdelavo njihove vsebine. Čeprav ima vsak vsebnik funkcije za svoje osnovne operacije, STL ponuja več kot šestdeset standardnih algoritmov za podporo bolj razširjenih ali zapletenih operacij. Standardni algoritmi nam omogočajo tudi delo z dvema različnima vrstama vsebnikov hkrati.

STL algoritmi krepijo filozofijo ponovne uporabnosti. Z uporabo teh algoritmov lahko programerji prihranijo veliko časa in truda. Za dostop do algoritmov STL moramo vključiti v naš program.

Algoritem STL lahko glede na naravo operacij, ki jih izvajajo, razvrstimo pod:

  • Nemutirajoči algoritmi

  • Mutirajoči algoritmi

  • Algoritmi za razvrščanje

  • Nastavite algoritme

  • Relacijski algoritem

Nadaljujemo s tem člankom o STL v jeziku C ++

Iteratorji:

Iteratorji delujejo kot kazalci in se uporabljajo za dostop do elementov vsebnika. Za premikanje po vsebini posod uporabljamo iteratorje. Z iteratorji se ravna tako kot s kazalci. Lahko jih povečujemo ali zmanjšujemo v skladu z našimi zahtevami. Iteratorji povezujejo vsebnike z algoritmi in igrajo ključno vlogo pri manipulaciji s podatki, shranjenimi v vsebnikih. Pogosto se uporabljajo za prehod iz enega elementa v drugega, temu postopku pravimo iteriranje skozi posodo.

Obstaja pet vrst iteratorjev:

1. Vhod

2. Izhod

3. Naprej

4. Dvosmerno

najdi največje število v javi

5. Naključno

Iterator

Način dostopa

Smer gibanja

I / O zmogljivost

Opomba

Vhod

Linearno

Samo naprej

Le za branje

Ni mogoče shraniti

Izhod

Linearno

Samo naprej

Samo piši

Ni mogoče shraniti

Naprej

Linearno

Samo naprej

Brati, pisati

Se lahko shrani

Dvosmerna

Linearno

Naprej in nazaj

Brati, pisati

Se lahko shrani

Naključen

Naključen

Naprej in nazaj

Brati, pisati

Se lahko shrani

Različne tipe iteratorjev je treba uporabljati z različnimi vrstami vsebnikov, tako da samo

zabojniki za zaporedje in asociacije lahko potujejo skozi iteratorje. Vsaka vrsta iteratorjev se uporablja za izvajanje določenih funkcij. Vhodni in izhodni iteratorji podpirajo najmanj funkcij. Uporabljajo se lahko samo za prehod skozi posodo. Posredujoči iteratorji podpirajo vse operacije vhodnih in izhodnih iteratorjev in ohranijo svoj položaj v vsebniku. Dvosmerni iterator, čeprav podpira vse operacije iteratorjev naprej, omogoča možnost premikanja v smeri nazaj v vsebniku.

Tako smo prišli do konca tega članka o „STL v jeziku C ++“. Če želite izvedeti več, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je zasnovan tako, da vas usposobi za temeljne in napredne koncepte Java, skupaj z različnimi Java okviri, kot sta Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega spletnega dnevnika, mi pa se vam bomo javili v najkrajšem možnem času.