Standardne knjižnice C ++
Standardna knjižnica predložaka (STL) ili standardna knjižnica predložaka utjecala je na C ++ arhitekturu i postala jezgra jezika. STL je skup univerzalnih komponenti i naprednih algoritama upravljanja podacima visokih performansi. Zahvaljujući C ++ bibliotekarskom programeru, dostupna su napredna dostignuća na području podatkovnih struktura i učinkovitih algoritama bez potrebe za detaljnim razumijevanjem njihove strukture i rada.C ++ ide na novu razinu
Ovaj pristup organiziranju rada s podacima i algoritmima prikazuje C + + na kvalitativno različitoj razini apstrakcije. Sada programer nije opterećen stvaranjem dinamičkih nizova, popisa, drveća, hashesa. On također može zaboraviti programiranje različitih algoritama za pretraživanje i zaobilaženje. S dolaskom STL programera dovoljno je odrediti odgovarajući spremnik i koristiti njegove članske funkcije i algoritme za obradu. STL komponente mogu raditi s proizvoljnim tipovima podataka. To se postiže činjenicom da su sve komponente biblioteke C ++ predlošci koji vam omogućuju da koristite bilo koju vrstu ako su sposobni za obavljanje potrebnih operacija. To jest, spremnici i algoritmigeneralizirani s obzirom na tipove. Ovaj koncept naziva se generičko programiranje.
Unatoč promjenama uvedenim u C ++ s pojavom STL-a, ne smije se zaboraviti da je jezik bio učinkovit i višenamjenski programski alat i prije njegovog izgleda, kao i sve njegove značajke spremljene na C ++ (npr. Knjižnica sustav ili ctime) i uz pojavu STL samo umnožiti.
Knjižnične komponente
Kontejneri
Iteratori
Sučelje samih iteratora slično je radu s pokazivačima. Na primjer, da biste dobili iterator sljedećeg elementa, morate izvesti operaciju "++" i dobiti vrijednost elementa, koji u trenutku kada iterator pokazuje, - operaciju "*". Tako je iterator sličan nekoj vrsti intelektualnog pokazivača.
Algoritmi
Glavni zadatak algoritama je rukovanje elementima zbirki. Na primjer, potražite ili razvrstajte, izmijenite ili koristite vrijednosti stavke.Algoritmi se implementiraju na račun iteratora. Ovaj pristup vam omogućuje da napravite algoritam samo jednom i proširite njegov rad na bilo koji spremnik zbog jednog sučelja iteratora. Mehanizam pomoćnih funkcija uzrokovanih algoritmima razvijen je za iznimno složene zadatke. Time se osigurava potrebna fleksibilnost za rješavanje određenih slučajeva. Primjerice, programer može tražiti određeni kriterij pretraživanja. S pojavom lambda funkcija, postojale su mogućnosti za opisivanje svih operacija koje se izvode na elementima spremnika kada su zamijenjene. Stoga je biblioteka C ++ funkcija vrlo fleksibilna.
Suprotno STL konceptima PLO-a? U biblioteci C ++, STL podaci se kontroliraju kontejnerskim klasama, a operacije konfiguriraju algoritmi. Ispostavlja se da koncept STL knjižnice dijeli podatke i operacije, što je u suprotnosti s načelima objektno orijentiranog programiranja, koje zahtijevaju spajanje podataka i operacija. Međutim, to je izgovor. Zbog interakcije bilo kojih algoritama s bilo kojim kontejnerom preko iteratora, programer može kombinirati sve podatke s bilo kojim operacijama. Na taj se način eliminira proturječje s OOP-om i postiže se potpuno nova razina fleksibilnosti.
STL je novi ili poboljšani pristup programiranju. Počeci knjižnice pojavili su se davno. Prve ideje nastale su u razdoblju 1992-1994. I nakon mnogo godina razvoja, STL je postao potpuno integriran u C ++ 11 standard. Knjižnica ima veliku funkcionalnost i veliku fleksibilnost, ali s timteško razumjeti. Njegova dokumentacija uključuje stotine web stranica (na primjer, dokumentaciju na web-mjestu Microsoft Visual C ++ knjižnice), a knjiga sadrži 1000 stranica opisa. U ovom slučaju knjižnica se aktivno razvija.