STL c ++: viss, kas jums jāzina



Šis raksts sniegs jums detalizētas un visaptverošas zināšanas par STL C ++ versijā un sniegs priekšstatu arī par dažādiem konteineriem.

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.

Container-STL-in-C++

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:

  1. Iestatiet
  2. Multiset
  3. Karte
  4. 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.