logo

C++ standartinė šablonų biblioteka (STL)

Standartinė šablonų biblioteka (STL) yra C++ šablonų klasių rinkinys, skirtas teikti bendras programavimo duomenų struktūras ir funkcijas, tokias kaip sąrašai, krūvos, masyvai ir kt. Tai konteinerių klasių, algoritmų ir iteratorių biblioteka. Tai apibendrinta biblioteka, todėl jos komponentai yra parametrizuoti. Darbo žinios apie šabloninės klasės yra būtina sąlyga dirbant su STL.

C++ standartinių šablonų biblioteka (STL) – tai algoritmų, duomenų struktūrų ir kitų komponentų rinkinys, kurį galima naudoti norint supaprastinti C++ programų kūrimą. STL pateikia daugybę talpyklų, tokių kaip vektoriai, sąrašai ir žemėlapiai, taip pat duomenų paieškos, rūšiavimo ir manipuliavimo algoritmus.



Vienas iš pagrindinių STL pranašumų yra tai, kad jis suteikia galimybę parašyti bendrą, daugkartinį kodą, kuris gali būti pritaikytas skirtingiems duomenų tipams. Tai reiškia, kad galite parašyti algoritmą vieną kartą, o tada naudoti jį su skirtingų tipų duomenimis, nerašydami atskiro kodo kiekvienam tipui.

STL taip pat suteikia galimybę parašyti efektyvų kodą. Daugelis STL algoritmų ir duomenų struktūrų yra įgyvendinami naudojant optimizuotus algoritmus, todėl vykdymo laikas gali būti greitesnis, palyginti su pasirinktu kodu.

kas yra hibernate java

Kai kurie pagrindiniai STL komponentai yra šie:

  1. Konteineriai: STL pateikia daugybę konteinerių, tokių kaip vektorius, sąrašas, žemėlapis, rinkinys ir dėklas, kuriuos galima naudoti duomenims saugoti ir tvarkyti.
  2. Algoritmai: STL pateikia daugybę algoritmų, tokių kaip rūšiavimas, paieška ir dvejetainis_paieška, kuriuos galima naudoti konteineriuose saugomais duomenimis.
  3. Iteratoriai: Iteratoriai yra objektai, kurie suteikia galimybę pereiti konteinerio elementus. STL suteikia daugybę iteratorių, tokių kaip forward_iterator, bidirectional_iterator ir random_access_iterator, kuriuos galima naudoti su įvairių tipų konteineriais.
  4. Funkciniai objektai: Funkciniai objektai, taip pat žinomi kaip funkcionoriai, yra objektai, kurie gali būti naudojami kaip algoritmų funkcijos argumentai. Jie suteikia galimybę perduoti funkciją algoritmui, kad galėtumėte tinkinti jos veikimą.
  5. Adapteriai: Adapteriai yra komponentai, modifikuojantys kitų STL komponentų veikimą. Pavyzdžiui, reverse_iterator adapterį galima naudoti norint pakeisti konteinerio elementų tvarką.

Naudodami STL galite supaprastinti kodą, sumažinti klaidų tikimybę ir pagerinti programų našumą.



STL sudaro 4 komponentai:

    Algoritmai Konteineriai Funktoriai Iteratoriai

1. Algoritmai

Antraštės algoritmas apibrėžia funkcijų rinkinį, specialiai sukurtą naudoti įvairiems elementams. Jie veikia konteinerius ir suteikia priemones įvairioms indų turinio operacijoms atlikti.

  • Algoritmas
    • Rūšiavimas
    • Ieškoma
    • Svarbūs STL algoritmai
    • Naudingi masyvo algoritmai
    • Perskirstymo operacijos
  • Skaitinis
    • valarray klasė

2. Konteineriai

Konteineriuose arba konteinerių klasėse saugomi objektai ir duomenys. Iš viso yra septynios standartinės pirmos klasės konteinerių klasės ir trys konteinerio adapterių klasės ir tik septyni antraštės failai, suteikiantys prieigą prie šių konteinerių arba konteinerių adapterių.



  • Sekos konteineriai: įdiekite duomenų struktūras, kurias galima pasiekti nuosekliai.
  • Konteinerių adapteriai: pateikia skirtingą sąsają nuosekliems konteineriams.
  • Asociatyvūs konteineriai: įgyvendinkite surūšiuotas duomenų struktūras, kurių galima greitai ieškoti (O(log n) sudėtingumas).
  • Netvarkingi asociatyvūs konteineriai: įdiekite netvarkingas duomenų struktūras, kurių galima greitai ieškoti
    • unordered_set (pristatyta C++11)
    • unordered_multiset (pristatyta C++11)
    • netvarkingas_žemėlapis (Įvestas C++11)
    • unordered_multimap (įvestas C++11)

Prisitaikomų ir netvarkingų konteinerių schema Sequence konteinerių ir užsakytų konteinerių schema

3. Funktoriai

STL apima klases, kurios perkrauna funkcijos iškvietimo operatorių. Tokių klasių egzemplioriai vadinami funkcijų objektais arba funktoriais. Funktoriai leidžia pritaikyti susijusios funkcijos veikimą perduodamų parametrų pagalba. Privaloma perskaityti – Funktoriai

4. Iteratoriai

Kaip rodo pavadinimas, iteratoriai naudojami dirbti su reikšmių seka. Jie yra pagrindinė funkcija, leidžianti STL apibendrinti. Privaloma perskaitytiIteratoriai

Naudingumo biblioteka

Apibrėžiama antraštėje. Privaloma perskaitytiSuporuokite C++ STL

Norėdami gauti daugiau informacijos, žr Naujausi straipsniai apie STL!

C++ standartinės šablonų bibliotekos (STL) pranašumai:

  1. Pakartotinis naudojimas: Vienas iš pagrindinių STL pranašumų yra tai, kad jis suteikia galimybę parašyti bendrą, daugkartinį kodą, kuris gali būti pritaikytas skirtingiems duomenų tipams. Tai gali padėti sukurti efektyvesnį ir prižiūrimesnį kodą.
  2. Veiksmingi algoritmai: daugelis STL algoritmų ir duomenų struktūrų yra įgyvendinami naudojant optimizuotus algoritmus, todėl vykdymo laikas gali būti greitesnis, palyginti su pasirinktu kodu.
  3. Patobulintas kodo skaitomumas: STL suteikia nuoseklų ir gerai dokumentuotą būdą dirbti su duomenimis, todėl kodą lengviau suprasti ir prižiūrėti.
  4. Didelė vartotojų bendruomenė: STL yra plačiai naudojamas, o tai reiškia, kad yra didelė kūrėjų bendruomenė, galinti teikti paramą ir išteklius, pvz., mokymo programas ir forumus.

C++ standartinės šablonų bibliotekos (STL) trūkumai:

  1. Mokymosi kreivė: STL gali būti sunku išmokti, ypač pradedantiesiems, dėl sudėtingos sintaksės ir pažangių funkcijų, tokių kaip iteratoriai ir funkcijų objektai.
  2. Kontrolės trūkumas: naudodami STL turite pasikliauti bibliotekos teikiamu diegimu, kuris gali apriboti tam tikrų kodo aspektų valdymą.
  3. Našumas: kai kuriais atvejais naudojant STL gali būti lėtesnis vykdymo laikas, palyginti su pasirinktiniu kodu, ypač kai dirbama su nedideliu duomenų kiekiu.