Standardna biblioteka predložaka (STL) skup je klasa predložaka C ++ koji pružaju uobičajene programske strukture podataka i funkcije kao što su popisi, stogovi, nizovi itd. U ovom članku o STL-u u C ++-u razgovarat ćemo o sljedećim uputama:
Nastavljamo s ovim člankom o STL-u na C ++
C ++ predlošci
C ++ nam pruža značajku predložaka koja omogućava funkcijama i klasama da rade s generičkim tipovima. To omogućuje ponovnu upotrebu funkcije ili klase i omogućuje joj rad na mnogo različitih vrsta podataka, a da se ne prepiše za svaku.
Nastavljamo s ovim člankom o STL-u na C ++
Generičke funkcije i STL
Tijekom programiranja često postoji potreba za stvaranjem funkcija koje izvode iste operacije, ali rade s različitim vrstama podataka. Dakle, za prevladavanje ovog problema C ++ nudi značajku za stvaranje jedne generičke funkcije umjesto mnogih funkcija koje mogu raditi s različitim vrstama podataka pomoću parametra predloška. Zbirka ovih generičkih klasa i funkcija naziva se Standard Template Library (STL)
Komponente STL-a koje su sada dio standardne knjižnice C ++ definirane su u prostoru imena std. Stoga moramo koristiti direktivu using namespace da bismo ih uvezli u naš program.
Sintaksa:
Korištenje prostora imena std
STL ima tri komponente
Spremnici
Algoritmi
Iteratore
Ove tri komponente međusobno djeluju u sinergiji kako bi pružile podršku raznim programskim rješenjima. Algoritam koristi iteratore za izvođenje operacije pohranjene u spremnicima.
Spremnik je objekt koji organizirano pohranjuje podatke u memoriju. Spremnici u STL-u implementirani su pomoću klasa predložaka i stoga se lako mogu prilagoditi i prilagoditi kako bi sadržavali različite vrste podataka.
Postupak koji se koristi za obradu podataka sadržanih u spremnicima definiran je kao algoritam. STL uključuje mnogo različitih vrsta algoritama koji pružaju podršku zadacima poput inicijalizacije, pretraživanja, kopiranja, sortiranja i spajanja, kopiranja, sortiranja i spajanja. Algoritmi se provode pomoću funkcija predloška.
Iterator se može definirati kao objekt koji upućuje na element u spremniku. Iteratori se mogu koristiti za kretanje kroz sadržaj spremnika. Iteratorima se rukuje baš poput pokazivača. Možemo ih povećavati ili smanjivati. Iteratori povezuju algoritam sa spremnicima i igraju ključnu ulogu u manipulaciji podacima pohranjenim u spremnicima.
Nastavljamo s ovim člankom o STL-u na C ++
Spremnici
STL definira deset spremnika koji su grupirani u tri kategorije.
Spremnici | Opis | Datoteka zaglavlja | Iterator |
Vektor | Može se definirati kao dinamički niz. Omogućuje izravan pristup bilo kojem elementu. | Nasumični pristup | |
Popis | To je dvosmjerni linearni popis. Omogućuje umetanje i brisanje bilo gdje qtp vs selen što je bolje | Dvosmjerno | |
i | Dvostruki je red. Omogućuje umetanje i brisanje na oba kraja. Omogućuje izravan pristup bilo kojem elementu. | Nasumični pristup | |
postavljen | To je pridruženi spremnik za pohranu jedinstvenih kompleta. Omogućuje brzo traženje. | Dvosmjerno | |
multiset | To je pridruženi spremnik za pohranu nejedinstvenih skupova. | Dvosmjerno | |
karta | To je pridruženi spremnik za pohranu jedinstvenih parova ključ / vrijednost. Svaki je ključ povezan samo s jednom vrijednošću. | Dvosmjerno | |
multimap | To je pridruženi spremnik za spremanje ključa / vrijednosti u kojem jedan ključ može biti povezan s više od jedne vrijednosti (mapiranje jedan-prema-više). Omogućuje pretraživanje na temelju ključa. | Dvosmjerno | |
stog | Standardni niz slijedi zadnji-prvi-izašao (LIFO) | Nema iteratora | |
red | Standardni red slijedi prvi-prvi-izašao (FIFO) | Nema iteratora | |
prioritet-red | Prvi je element uvijek element s najvećim prioritetom | Nema iteratora |
Spremnici za slijed
Spremnici za slijed pohranjuju elemente u linearnom redoslijedu. Svi su elementi međusobno povezani svojim položajem duž crte. Omogućuju umetanje elementa i svi podržavaju nekoliko operacija na njima.
STL nudi tri vrste elemenata niza:
- Vektor
- Popis
- i
Asocijativni spremnici:
Dizajnirani su na takav način da mogu podržati izravan pristup elementima pomoću tipki. Nisu sekvencijalni. Postoje četiri vrste
asocijativni spremnici:
- Postavi
- Multiset
- Karta
- Multimap
Svi gore navedeni spremnici pohranjuju podatke u strukturu koja se naziva stablo i koja olakšava brzo
pretraživanje, brisanje i umetanje za razliku od sekvencijalnog. Skup kontejnera ili multiset mogu pohraniti razne stavke i pružiti operacije za manipulaciju njima koristeći vrijednosti kao ključeve.
A karta ili Multimap koriste se za spremanje predmeta u paru, jedan se zove ključ, a drugi
naziva vrijednost.
Izvedeni spremnici:
STL nudi tri izvedena spremnika, naime, stack, queue i prior_queue. Oni su također poznati i kao adapteri za spremnike.
Postoje tri vrste izvedenih spremnika:
što je postupak u sql-u
1. Slagati
2. Red
3.Rad_prioritet
Snopovi, red i prioritetni red mogu se lako stvoriti iz različitih spremnika slijeda. Izvedeni spremnici ne podržavaju iteratore i stoga ih ne možemo koristiti za manipulaciju podacima. Međutim, podržavaju funkciju dva člana pop () i push () za provođenje operacija brisanja i umetanja.
Nastavljamo s ovim člankom o STL-u na C ++
Algoritmi
Algoritmi su funkcije koje se općenito mogu koristiti u različitim spremnicima za obradu njihovog sadržaja. Iako svaki spremnik pruža funkcije za svoje osnovne operacije, STL nudi više od šezdeset standardnih algoritama za podršku proširenijim ili složenijim operacijama. Standardni algoritmi također nam omogućuju istodobni rad s dvije različite vrste spremnika.
STL algoritmi jačaju filozofiju ponovne upotrebe. Korištenjem ovih algoritama programeri mogu uštedjeti puno vremena i truda. Da bismo imali pristup STL algoritmima, moramo uključiti u naš program.
STL algoritam, na temelju prirode operacija koje izvode, može se kategorizirati pod:
Nemutirajući algoritmi
Mutirajući algoritmi
Algoritmi sortiranja
Postavite algoritme
Relacijski algoritam
Nastavljamo s ovim člankom o STL-u na C ++
Ponavljači:
Iteratori se ponašaju poput pokazivača i koriste se za pristup elementima spremnika. Pomoću iteratora krećemo se kroz sadržaj spremnika. Iteratorima se rukuje baš poput pokazivača. Možemo ih povećavati ili smanjivati prema našim zahtjevima. Iteratori povezuju spremnike s algoritmima i igraju vitalnu ulogu u manipulaciji podacima pohranjenim u spremnicima. Često se koriste za prolazak iz jednog elementa u drugi, taj se postupak naziva iteracijom kroz spremnik.
Postoji pet vrsta iteratora:
1.Ulaz
2.izlaz
3.Naprijed
4.Dvosmjerna
5.Slučajno
Iterator | Način pristupa | Smjer kretanja | I / O sposobnost | Napomena |
Ulazni | Linearno | Samo naprijed | Samo za čitanje | Nije moguće spremiti |
Izlaz | Linearno | Samo naprijed | Samo piši | Nije moguće spremiti |
Naprijed | Linearno | Samo naprijed | Čitaj / piši | Može se spasiti |
Dvosmjerno | Linearno | Naprijed i natrag | Čitaj / piši | Može se spasiti |
Slučajno | Slučajno | Naprijed i natrag | Čitaj / piši | Može se spasiti java kako to koristiti |
Različite vrste iteratora moraju se koristiti s različitim vrstama spremnika, tako da samo
kontejneri za redoslijed i asocijacije smiju putovati kroz iteratore. Svaka vrsta iteratora koristi se za obavljanje određenih funkcija. Ulazni i izlazni iteratori podržavaju najmanje funkcija. Mogu se koristiti samo za prolazak kroz kontejner. Naprijed iteratori podržavaju sve operacije ulaznih i izlaznih iteratora i također zadržavaju svoj položaj u spremniku. Dvosmjerni iterator, iako podržava sve operacije iteratora prema naprijed, pruža mogućnost kretanja u smjeru unatrag u spremniku.
Tako smo došli do kraja ovog članka o 'STL u C ++'. Ako želite saznati više, pogledajte Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.
Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.