Standarta veidņu bibliotēka (STL) ir C ++ veidņu klašu kopa, lai nodrošinātu kopīgas programmēšanas datu struktūras un funkcijas, piemēram, sarakstus, skursteņus, masīvus utt. Šajā STL C ++ rakstā mēs apspriedīsim šādus norādījumus:
Turpinot šo rakstu par STL C ++
C ++ veidnes
C ++ nodrošina mums veidņu funkciju, kas ļauj funkcijām un klasēm darboties ar vispārīgiem tipiem. Tas ļauj atkārtoti izmantot funkciju vai klasi un ļauj strādāt ar daudziem dažādiem datu tipiem, nepārrakstot katram no tiem.
Turpinot šo rakstu par STL C ++
Vispārīgās funkcijas un STL
Programmējot daudzas reizes, ir jāizveido funkcijas, kas veic tās pašas darbības, bet strādā ar dažādiem datu tipiem. Tāpēc, lai pārvarētu šo problēmu, C ++ nodrošina iespēju izveidot vienu vispārīgu funkciju, nevis daudzas funkcijas, kas var strādāt ar dažādiem datu tipiem, izmantojot veidnes parametru. Šo vispārīgo klašu un funkciju kolekciju sauc par standarta veidņu bibliotēku (STL)
STL komponenti, kas tagad ir daļa no standarta C ++ bibliotēkas, ir definēti nosaukumvietas std. Tāpēc mums ir jāizmanto nosaukumvietas direktīva, lai tos importētu mūsu programmā.
Sintakse:
Izmantojot vārdamvietas std
STL ir trīs sastāvdaļas
Konteineri
Algoritmi
Iteratori
Šie trīs komponenti sinerģijā darbojas kopā, lai sniegtu atbalstu dažādiem programmēšanas risinājumiem. Algoritms izmanto iteratorus, lai veiktu operācijas, kas glabājas konteineros.
Konteiners ir objekts, kas datus atmiņā saglabā sakārtotā veidā. STL konteinerus realizē veidņu klases, un tāpēc tos var viegli modificēt un pielāgot dažādu veidu datu glabāšanai.
Procedūra, kas tiek izmantota konteineros esošo datu apstrādei, ir definēta kā algoritms. STL ietver daudz dažādu veidu algoritmus, lai sniegtu atbalstu tādiem uzdevumiem kā inicializēšana, meklēšana, kopēšana, šķirošana un apvienošana, kopēšana, šķirošana un apvienošana. Algoritmus realizē veidņu funkcijas.
Atkārtotāju var definēt kā objektu, kas norāda uz konteinera elementu. Iteratorus var izmantot, lai pārvietotos pa konteineru saturu. Ar iteratoriem rīkojas tāpat kā ar rādītājiem. Mēs varam tos palielināt vai samazināt. Iteratori savieno algoritmu ar konteineriem un spēlē galveno lomu manipulācijā ar konteineros saglabātajiem datiem.
Turpinot šo rakstu par STL C ++
Konteineri
STL definē desmit konteinerus, kas ir sagrupēti trīs kategorijās.
Konteineri | Apraksts | Galvenes fails | Iterators |
Vector | To var definēt kā dinamisku masīvu. Tas ļauj tieši piekļūt jebkuram elementam. | Nejauša piekļuve | |
Saraksts | Tas ir divvirzienu lineārs saraksts. Tas ļauj ievietot un dzēst jebkur | Divvirzienu | |
un | Tā ir divkārša rinda. Ļauj ievietot un dzēst abos galos. Ļauj tiešu piekļuvi jebkuram elementam. | Nejauša piekļuve | |
komplekts | Tas ir asociētais konteiners unikālu komplektu glabāšanai. Ļauj ātri meklēt. | Divvirzienu | |
multiset | Tas ir asociētais konteiners unikālu komplektu glabāšanai. | Divvirzienu | |
karte | Tas ir asociētais konteiners unikālu atslēgu / vērtību pāru glabāšanai. Katra atslēga ir saistīta tikai ar vienu vērtību. | Divvirzienu | |
multimap | Tas ir asociētais konteiners atslēgas / vērtības glabāšanai, kurā viena atslēga var būt saistīta ar vairāk nekā vienu vērtību (kartēšana viens pret daudziem. Tas ļauj uz atslēgu balstītu uzmeklēšanu. | Divvirzienu | |
kaudze | Standarta kaudze seko pēdējam-pirmais-ārā (LIFO) | Nav atkārtotāju | |
rinda | Standarta rinda seko pirmais-pirmais-ārā (FIFO) | Nav atkārtotāju | |
prioritāte-rinda | Pirmais ārējais elements vienmēr ir augstākās prioritātes elements | Nav atkārtotāju |
Secības konteineri
Secības konteineros elementi tiek glabāti lineārā secībā. Visi elementi ir saistīti viens ar otru pēc to stāvokļa pa līniju. Tie ļauj ievietot elementu, un visi no tiem atbalsta vairākas darbības.
STL nodrošina trīs veidu secības elementus:
- Vector
- Saraksts
- un
Asociatīvie konteineri:
Tie ir veidoti tā, lai tie varētu atbalstīt tiešu piekļuvi elementiem, izmantojot atslēgas. Tie nav secīgi. Ir četri veidi
asociatīvie konteineri:
- Iestatiet
- Multiset
- Karte
- Multimap
Visi iepriekš minētie konteineri glabā datus struktūrā, ko sauc par koku, kas atvieglo ātru darbību
meklēšana, dzēšana un ievietošana atšķirībā no secīgas. Konteineru komplekts vai multiset var uzglabāt dažādus vienumus un nodrošināt operācijas ar tiem, izmantojot vērtības kā atslēgas.
Karte vai Multimap tiek izmantota, lai vienumus uzglabātu pārī, vienu sauc par atslēgu un otru
sauc vērtību.
Atvasinātie konteineri:
STL nodrošina trīs atvasinātus konteinerus, proti, kaudze, rinda un prioritāte. Tos sauc arī par konteineru adapteriem.
Ir trīs atvasinātu konteineru veidi:
1. Kaudze
2. Rinda
3. Prioritātes_rinda
Stekus, rindu un prioritāro rindu var viegli izveidot no dažādiem secības konteineriem. Atvasinātie konteineri neatbalsta atkārtotājus, un tāpēc mēs tos nevaram izmantot datu manipulēšanai. Tomēr viņi atbalsta divu dalībnieku funkciju pop () un push () dzēšanas un ievietošanas darbību īstenošanai.
Turpinot šo rakstu par STL C ++
Algoritmi
Algoritmi ir funkcijas, kuras to satura apstrādei parasti var izmantot dažādos konteineros. Lai gan katrs konteiners nodrošina funkcijas tā pamatdarbībām, STL nodrošina vairāk nekā sešdesmit standarta algoritmus, lai atbalstītu izvērstākas vai sarežģītākas darbības. Standarta algoritmi ļauj mums vienlaikus strādāt ar diviem dažāda veida konteineriem.
STL algoritmi pastiprina atkārtotas izmantošanas filozofiju. Izmantojot šos algoritmus, programmētāji var ietaupīt daudz laika un pūļu. Lai piekļūtu STL algoritmiem, mums jāiekļauj mūsu programmā.
STL algoritmu, pamatojoties uz to veikto darbību raksturu, var iedalīt kategorijās:
Nemutējoši algoritmi
Mutējošie algoritmi
Algoritmu šķirošana
Iestatiet algoritmus
Relāciju algoritms
Turpinot šo rakstu par STL C ++
Iteratori:
Iteratori darbojas kā norādes un tiek izmantoti, lai piekļūtu konteinera elementiem. Mēs izmantojam iteratorus, lai pārvietotos pa konteineru saturu. Ar iteratoriem rīkojas tāpat kā ar rādītājiem. Mēs varam tos palielināt vai samazināt atbilstoši mūsu prasībām. Iteratori savieno konteinerus ar algoritmiem un tiem ir būtiska loma manipulācijās ar konteineros saglabātajiem datiem. Tos bieži izmanto, lai pārietu no viena elementa uz otru, šo procesu sauc par iterāciju caur konteineru.
Ir pieci atkārtotāju veidi:
1. Ieeja
2. Izeja
3. Uz priekšu
4. Divvirzienu
5. Gadījuma
Iterators | Piekļuves metode kā darīt jaudu pitonā | Kustības virziens | I / O iespējas | Piezīme |
Ievade | Lineāra | Tikai uz priekšu | Tikai lasīt | Nevar saglabāt |
Rezultāts | Lineāra | Tikai uz priekšu | Tikai rakstīt | Nevar saglabāt |
Uz priekšu | Lineāra | Tikai uz priekšu | Lasīt rakstīt | Var saglabāt |
Divvirzienu | Lineāra | Uz priekšu un atpakaļ | Lasīt rakstīt | Var saglabāt |
Nejaušs | Nejaušs | Uz priekšu un atpakaļ | Lasīt rakstīt | Var saglabāt |
Ar dažāda veida konteineriem jāizmanto dažādi iteratoru tipi
secības un asociatīvajiem konteineriem ir atļauts ceļot caur iteratoriem. Katra veida iterators tiek izmantots noteiktu funkciju veikšanai. Ievades un izvades atkārtotāji atbalsta vismazāk funkciju. Tos var izmantot tikai caurbraukšanai traukā. Forward iterators atbalsta visas ievades un izvades iteratoru darbības, kā arī saglabā pozīciju konteinerā. Divvirzienu iterators, vienlaikus atbalstot visas uz priekšu esošo iteratoru darbības, nodrošina iespēju pārvietoties konteinerā atpakaļ.
Tādējādi esam nonākuši pie šī raksta par “STL C ++” beigām. Ja vēlaties uzzināt vairāk, iepazīstieties ar Autors: uzticams tiešsaistes mācību uzņēmums Edureka. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem kopā ar dažādiem Java ietvariem, piemēram, Hibernate & Spring.
Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.