Standarta veidņu bibliotēka (STL) ir C++ veidņu klašu kopa, kas nodrošina kopīgas programmēšanas datu struktūras un funkcijas, piemēram, sarakstus, stekus, masīvus utt. Tā ir konteineru klašu, algoritmu un iteratoru bibliotēka. Tā ir vispārināta bibliotēka, tāpēc tās komponenti ir parametrizēti. Darba zināšanas par veidņu klases ir priekšnoteikums darbam ar STL.
C++ standarta veidņu bibliotēka (STL) ir algoritmu, datu struktūru un citu komponentu kolekcija, ko var izmantot, lai vienkāršotu C++ programmu izstrādi. STL nodrošina virkni konteineru, piemēram, vektorus, sarakstus un kartes, kā arī algoritmus datu meklēšanai, šķirošanai un manipulēšanai.
Viena no galvenajām STL priekšrocībām ir tā, ka tā nodrošina veidu, kā rakstīt vispārīgu, atkārtoti lietojamu kodu, ko var lietot dažādiem datu tipiem. Tas nozīmē, ka varat vienu reizi uzrakstīt algoritmu un pēc tam izmantot to ar dažāda veida datiem, nerakstot katram veidam atsevišķu kodu.
STL nodrošina arī veidu, kā rakstīt efektīvu kodu. Daudzi STL algoritmi un datu struktūras ir ieviesti, izmantojot optimizētus algoritmus, kas var nodrošināt ātrāku izpildes laiku, salīdzinot ar pielāgotu kodu.
dinamisks masīvs Java
Daži no galvenajiem STL komponentiem ir:
- Konteineri: STL nodrošina virkni konteineru, piemēram, vektoru, sarakstu, karti, kopu un kaudzi, ko var izmantot datu glabāšanai un manipulēšanai.
- Algoritmi: STL nodrošina virkni algoritmu, piemēram, kārtot, atrast un binary_search, ko var izmantot, lai manipulētu ar konteineros saglabātajiem datiem.
- Iteratori: Iteratori ir objekti, kas nodrošina veidu, kā šķērsot konteinera elementus. STL nodrošina virkni iteratoru, piemēram, forward_iterator, bidirectional_iterator un random_access_iterator, ko var izmantot ar dažāda veida konteineriem.
- Funkciju objekti: funkciju objekti, kas pazīstami arī kā funkcionāri, ir objekti, kurus var izmantot kā algoritmu funkciju argumentus. Tie nodrošina veidu, kā nodot funkciju algoritmam, ļaujot pielāgot tās darbību.
- Adapteri: Adapteri ir komponenti, kas maina citu STL komponentu darbību. Piemēram, adapteri reverse_iterator var izmantot, lai mainītu konteinera elementu secību.
Izmantojot STL, varat vienkāršot savu kodu, samazināt kļūdu iespējamību un uzlabot programmu veiktspēju.
STL sastāv no 4 sastāvdaļām:
- Algoritmi Konteineri Funktori Iteratori
1. Algoritmi
Galvenes algoritms definē funkciju kolekciju, kas īpaši izstrādāta izmantošanai virknē elementu. Tie iedarbojas uz konteineriem un nodrošina līdzekļus dažādām darbībām ar konteineru saturu.
- Algoritms
- Šķirošana
- Meklēšana
- Svarīgi STL algoritmi
- Noderīgi masīvu algoritmi
- Sadalījuma darbības
- Skaitlis
- valarray klase
2. Konteineri
Konteineros vai konteineru klasēs tiek glabāti objekti un dati. Kopumā ir septiņas standarta pirmās klases konteineru klases un trīs konteineru adapteru klases un tikai septiņi galvenes faili, kas nodrošina piekļuvi šiem konteineriem vai konteineru adapteriem.
- Secības konteineri: ievieš datu struktūras, kurām var piekļūt secīgā veidā.
- Konteineru adapteri: nodrošina atšķirīgu saskarni secīgiem konteineriem.
- Asociatīvie konteineri: ievieš sakārtotas datu struktūras, kurās var ātri meklēt (O(log n) sarežģītība).
- Nesakārtoti asociatīvie konteineri: ievieš nesakārtotas datu struktūras, kurās var ātri meklēt
- unordered_set (ieviests C++11)
- unordered_multiset (ieviests C++11)
- unordered_map (Ieviests C++11)
- unordered_multimap (ieviests C++11)
3. Funktori
STL ietver klases, kas pārslogo funkciju izsaukuma operatoru. Šādu klašu gadījumus sauc par funkciju objektiem vai funkcionāriem. Funktori ļauj pielāgot saistītās funkcijas darbību, izmantojot nododamus parametrus. Vajag izlasīt – Funktori
4. Iteratori
Kā norāda nosaukums, iteratori tiek izmantoti, lai strādātu pie vērtību secības. Tās ir galvenā iezīme, kas nodrošina vispārīgumu STL. Vajag izlasīt – Iteratori
Lietderības bibliotēka
Definēts galvenē. Vajag izlasīt – Savienot pārī C++ STL
Lai iegūtu sīkāku informāciju, skatiet Jaunākie raksti par STL!
C++ standarta veidņu bibliotēkas (STL) priekšrocības:
- Atkārtoti lietojamība: viena no galvenajām STL priekšrocībām ir tā, ka tā nodrošina veidu, kā rakstīt vispārēju, atkārtoti lietojamu kodu, ko var lietot dažādiem datu tipiem. Tas var radīt efektīvāku un uzturējamāku kodu.
- Efektīvi algoritmi: daudzi STL algoritmi un datu struktūras ir ieviesti, izmantojot optimizētus algoritmus, kas var nodrošināt ātrāku izpildes laiku, salīdzinot ar pielāgotu kodu.
- Uzlabota koda lasāmība: STL nodrošina konsekventu un labi dokumentētu veidu, kā strādāt ar datiem, kas var atvieglot koda izpratni un uzturēšanu.
- Liela lietotāju kopiena: STL tiek plaši izmantots, kas nozīmē, ka ir liela izstrādātāju kopiena, kas var nodrošināt atbalstu un resursus, piemēram, apmācības un forumus.
C++ standarta veidņu bibliotēkas (STL) trūkumi:
- Mācīšanās līkne: STL var būt grūti apgūt, īpaši iesācējiem, jo tā ir sarežģīta sintakse un tiek izmantotas uzlabotas funkcijas, piemēram, iteratori un funkciju objekti.
- Kontroles trūkums: izmantojot STL, jums ir jāpaļaujas uz bibliotēkas nodrošināto ieviešanu, kas var ierobežot jūsu kontroli pār noteiktiem koda aspektiem.
- Veiktspēja: dažos gadījumos STL izmantošana var izraisīt lēnāku izpildes laiku, salīdzinot ar pielāgotu kodu, īpaši, ja tiek apstrādāts neliels datu apjoms.