Standardne C ++ knjižnice
Standardna knjižnica predlog (STL),
Vsebina
C + + gre na novo raven
Za programerja je STL predstavljen nabor zbirnih razredov, namenjenih za posebne namene, in nabor algoritmov, ki lahko delajo z njimi. Ker so vse komponente knjižnice predloge, jih je mogoče uporabiti za vse vrste elementov. Poleg tega knjižnica omogoča gradnjo lastnih razredov in algoritmov, ki lahko delujejo skupaj z obstoječimi.
Ta pristop k organizaciji dela s podatki in algoritmi C ++ kvalitativno preide na drugo stopnjo abstrakcije. Zdaj programer ni obremenjen z ustvarjanjem dinamičnih nizov, seznamov, dreves, heš. Prav tako lahko pozabi na programiranje različnih algoritmov iskanja in prehoda. S prihodom STL-ja je dovolj, da programer določi ustrezen vsebnik in uporablja svoje funkcije člana in algoritme za obdelavo.
Komponente STL lahko delajo z poljubnimi vrstami podatkov. To se doseže z dejstvom, da so vse komponente knjižnice C ++ predloge, ki omogočajo uporabo vseh vrst, če lahko izvajajo potrebne operacije. To pomeni, da so kontejnerji in algoritmi posplošeni glede na tipe. Ta koncept se imenuje generalizirano programiranje.
Kljub spremembam, ki so bile uvedene v C ++ s prihodom STL, ne smemo pozabiti, da je jezik učinkovit in vsestranski program, orodje in pred svoj videz, in vseh njegovih funkcij C ++ konzervirane (na primer knjižnica sistem ali čas zadnje), in s prihodom STL le pomnožili.
Komponente knjižnice
Gradniki v knjižnici so skrbno strukturirane komponente in njihova odpravljena interakcija. Glavni takšni bloki so kontejnerji, iteratorji in algoritmi. S knjižnico C ++ STL nudi neverjetno raven fleksibilnosti pri programiranju, vendar je v času obvladovanja težko razumeti in zahtevati.
Zabojniki
V standardni knjižnici C ++ se zabojniki uporabljajo za upravljanje zbirk in vsebujejo predmete določene vrste. Vsi kontejnerji imajo nabor prednosti in slabosti. Zato so razvili različne vsebnike, primerne za različne zahteve programov. Posode so lahko nizi ali povezani seznami. Prav tako se lahko izvajajo s posebnim ključem za vsak element.
Obstajajo 3 vrste posod:
- Zaporedne posode. So organizirane zbirke. Vsak element ima svoj položaj, ki je odvisen od časa vstavljanja in ni odvisen od vrednosti elementa. Obstaja pet vrst zaporednih vsebnikov: matrika, vektor, deque, seznam, seznam naprej.
- Asociativni vsebniki. Urejajo se tudi zbirke elementov, vendar je njihov položaj odvisen od vrednosti samega elementa ali ključa, če so elementi zbirke pari ključne vrednosti. Obstajajo 4 standardna asociacijska vsebnika: set, multiset, map, multimap.
- Neurejeni asociativni vsebniki. V tem primeru vrednost elementov v zbirki ne vpliva na vrednost ali čas vstavljanja elementa v zbirko. Če vstavite v zbirko n-tega števila elementov, bo njihov naročilo nepredvidljiv. Poleg tega se sčasoma lahko spremeni. Neurejeni kontejnerji so: neurejeni set, neurejeni večstopenjski, neurejeni zemljevidi, neurejeni multimap.
Iteratorji
To so mehanizmi, ki se uporabljajo za premikanje elementov v zbirki objektov. V tem primeru so zbirke lahko bodisi zabojniki bodisi njihova podmnožica. Glavna prednost iteratorjev je, da ustvarjajo minimalen, zadosten in univerzalni vmesnik za vse vrste posod. Na primer, ena izmed nalog iteratorja je premikanje po elementih zbirke in ni odvisna od strukture te zbirke, kar je lahko karkoli: matrika, drevo, razpršilna tabela. Iskanje elementov deluje enako.
Vmesnik iteratorjev je podoben delu s kazalci. Na primer, če želite naslednji element prejeti s iteratorjem, morate izvesti operacijo "++" in pridobiti vrednost elementa, na katerega se trenutno usmeri iterator, je operacija "*". Tako je iterator podoben tipu pametnega kazalca.
Algoritmi
Glavna naloga algoritmov je obdelava elementov zbirk. Na primer, poiščite ali razvrstite, spremenite ali uporabite vrednost elementa. Algoritmi se izvajajo na račun iteratorjev. Ta pristop vam omogoča, da ustvarite algoritem le enkrat in razširite svoje delo na vse vsebnike prek enotnega vmesnika iteratorjev.
Za zelo zapletene probleme je bil razvit mehanizem za pomožne funkcije, ki jih imenujemo algoritmi. To zagotavlja potrebno prožnost za obravnavanje posebnih primerov. Na primer, lahko programer določi poseben kriterij iskanja. S prihodom lambda funkcij obstajajo možnosti za opis vseh postopkov, izvedenih na elementih kontejnerjev, ko jih prehajajo. Tako knjižnica funkcij C ++ predstavlja zelo prilagodljive funkcije.
Ali STL nasprotuje konceptom OOP?
V knjižnici C ++ podatke STL upravljajo razredi vsebnikov, operacije pa nadzorujejo algoritmi po meri. Izkazalo se je, da koncept knjižnice STL ločuje podatke in operacije, kar je v nasprotju z načeli objektno usmerjeno programiranje, ki zahtevajo kombinacijo podatkov in operacij. Vendar pa je za to izgovor. Zahvaljujoč interakciji vseh algoritmov s kakršnimi koli vsebniki z iteratorji, lahko programer združuje vse podatke z vsemi operacijami. Tako je protislovje z OOP odpravljeno in dosežena je povsem nova stopnja fleksibilnosti.
Zaključek
STL predstavlja nov ali izboljšan pristop k programiranju. Začetki knjižnice so se že zdavnaj pojavili. Prve ideje so se rodile leta 1992-1994. Po mnogih letih razvoja je STL popolnoma integriran v standard C + + 11. Knjižnica ima obsežno funkcionalnost in odlično fleksibilnost, vendar je težko razumljiva. Njena dokumentacija je sestavljena iz več sto spletnih strani (na primer dokumentacije na Microsoft Visual C ++ spletni strani), opis pa zajema 1000 strani knjig. Hkrati je knjižnica aktivno razvita.
- Knjižnice v Krasnodru: seznam, opis, naslovi
- Lastnosti in metode zapisovanja algoritmov
- Knjižnica imenovana po Lermontovu. Penza je še posebej ponosna na novo stavbo
- Gorky Library (Tver): Zgodovina in modernost
- Mesto Voronež: knjižnica Nikita
- Osnovni tipi in primeri cikličnih algoritmov
- Regionalna Vologda knjižnica. Babushkina je veliko znanstveno in kulturno središče severozahodne…
- Knjižnica VSU je največji znanstveni in informacijski center osrednje črne zemlje
- Nikitinsky Library of Voronezh: zgodovina ustvarjanja in življenja institucije danes
- Vladimir Regionalna znanstvena knjižnica - ponos v regiji
- Knjižnice v Moskvi: nov videz običajnih ustanov
- Metode opisovanja algoritmov in vrst algoritmov
- Knjižnica. Pomen besede, etimologija, črkovanje
- Chelyabinsk Regionalna univerzitetna znanstvena knjižnica: Dan včeraj in danes
- Knjižnice v Surgutu: samostojno izobraževanje za vse
- Vrste algoritmov v računalništvu: primeri
- Opredelitev, lastnosti in vrste algoritmov
- Reševanje problemov načrtovanja. Ciklični algoritem
- Genetski algoritmi
- Spajanje: opis delovanja algoritma in razlike med drugimi vrstami naročanja podatkov
- Kako pravilno odstraniti DirectX v operacijskem sistemu Windows 7