logo

Štandardná knižnica šablón C++ (STL)

Štandardná knižnica šablón (STL) je sada tried šablón v jazyku C++, ktoré poskytujú bežné programovacie dátové štruktúry a funkcie, ako sú zoznamy, zásobníky, polia atď. Je to knižnica tried kontajnerov, algoritmov a iterátorov. Je to zovšeobecnená knižnica, a preto sú jej komponenty parametrizované. Pracovná znalosť šablónové triedy je predpokladom pre prácu s STL.

C++ Standard Template Library (STL) je zbierka algoritmov, dátových štruktúr a iných komponentov, ktoré možno použiť na zjednodušenie vývoja programov C++. STL poskytuje celý rad kontajnerov, ako sú vektory, zoznamy a mapy, ako aj algoritmy na vyhľadávanie, triedenie a manipuláciu s údajmi.



Jednou z kľúčových výhod STL je, že poskytuje spôsob písania generického, opakovane použiteľného kódu, ktorý možno použiť na rôzne typy údajov. To znamená, že môžete napísať algoritmus raz a potom ho použiť s rôznymi typmi údajov bez toho, aby ste museli písať samostatný kód pre každý typ.

STL tiež poskytuje spôsob, ako písať efektívny kód. Mnohé z algoritmov a dátových štruktúr v STL sú implementované pomocou optimalizovaných algoritmov, čo môže viesť k rýchlejšiemu vykonávaniu v porovnaní s vlastným kódom.

sql poradie náhodne

Niektoré z kľúčových komponentov STL zahŕňajú:

  1. Kontajnery: STL poskytuje celý rad kontajnerov, ako je vektor, zoznam, mapa, sada a zásobník, ktoré možno použiť na ukladanie a manipuláciu s údajmi.
  2. Algoritmy: STL poskytuje celý rad algoritmov, ako je triedenie, vyhľadávanie a binárne vyhľadávanie, ktoré možno použiť na manipuláciu s údajmi uloženými v kontajneroch.
  3. Iterátory: Iterátory sú objekty, ktoré poskytujú spôsob, ako prechádzať prvkami kontajnera. STL poskytuje celý rad iterátorov, ako napríklad forward_iterator, bidirectional_iterator a random_access_iterator, ktoré možno použiť s rôznymi typmi kontajnerov.
  4. Funkčné objekty: Funkčné objekty, známe aj ako funktory, sú objekty, ktoré možno použiť ako funkčné argumenty pre algoritmy. Poskytujú spôsob, ako odovzdať funkciu algoritmu, čo vám umožňuje prispôsobiť jej správanie.
  5. Adaptéry: Adaptéry sú komponenty, ktoré upravujú správanie iných komponentov v STL. Napríklad, adaptér reverse_iterator možno použiť na obrátenie poradia prvkov v kontajneri.

Pomocou STL môžete zjednodušiť svoj kód, znížiť pravdepodobnosť chýb a zlepšiť výkon svojich programov.



STL má 4 komponenty:

    Algoritmy Kontajnery Funktory Iterátory

1. Algoritmy

Algoritmus hlavičky definuje kolekciu funkcií špeciálne navrhnutých na použitie na rade prvkov. Pôsobia na nádoby a poskytujú prostriedky na rôzne operácie s obsahom nádob.

  • Algoritmus
    • Triedenie
    • Hľadá sa
    • Dôležité STL algoritmy
    • Užitočné Array algoritmy
    • Operácie s oddielmi
  • Numerický
    • trieda valarray

2. Nádoby

Kontajnery alebo triedy kontajnerov ukladajú objekty a údaje. Existuje celkovo sedem štandardných tried prvotriednych kontajnerov a tri triedy kontajnerových adaptérov a iba sedem hlavičkových súborov, ktoré poskytujú prístup k týmto kontajnerom alebo kontajnerovým adaptérom.



  • Sekvenčné kontajnery: implementujú dátové štruktúry, ku ktorým je možné pristupovať sekvenčným spôsobom.
    • vektor
    • zoznam
    • o čom
    • polia
    • forward_list (zavedené v C++ 11)
  • Kontajnerové adaptéry: poskytujú iné rozhranie pre sekvenčné kontajnery.
  • Asociatívne kontajnery: implementujte triedené dátové štruktúry, ktoré možno rýchlo vyhľadávať (zložitosť O(log n)).
  • Neusporiadané asociatívne kontajnery: implementujte neusporiadané dátové štruktúry, ktoré možno rýchlo vyhľadávať
    • unordered_set (zavedené v C++ 11)
    • unordered_multiset (zavedené v C++ 11)
    • unordered_map (Zavedené v C++ 11)
    • unordered_multimap (zavedené v C++ 11)

Vývojový diagram adaptívnych kontajnerov a neusporiadaných kontajnerov Vývojový diagram sekvenčných kontajnerov a objednaných kontajnerov

3. Funktory

STL obsahuje triedy, ktoré preťažujú operátora volania funkcie. Inštancie takýchto tried sa nazývajú funkčné objekty alebo funktory. Funktory umožňujú prispôsobiť fungovanie súvisiacej funkcie pomocou odovzdávaných parametrov. Musíte prečítať – Funktory

4. Iterátory

Ako už názov napovedá, iterátory sa používajú na prácu so sekvenciou hodnôt. Sú hlavnou funkciou, ktorá umožňuje všeobecnosť v STL. Musíte prečítaťIterátory

Utility Library

Definované v hlavičke. Musíte prečítaťSpárujte v C++ STL

Ďalšie podrobnosti nájdete v časti Najnovšie články o STL!

Výhody štandardnej knižnice šablón C++ (STL):

  1. Opätovná použiteľnosť: Jednou z kľúčových výhod STL je, že poskytuje spôsob, ako písať generický, opakovane použiteľný kód, ktorý možno použiť na rôzne typy údajov. To môže viesť k efektívnejšiemu a udržiavateľnému kódu.
  2. Efektívne algoritmy: Mnohé z algoritmov a dátových štruktúr v STL sú implementované pomocou optimalizovaných algoritmov, čo môže viesť k rýchlejšiemu vykonávaniu v porovnaní s vlastným kódom.
  3. Vylepšená čitateľnosť kódu: STL poskytuje konzistentný a dobre zdokumentovaný spôsob práce s údajmi, čo môže uľahčiť pochopenie a údržbu vášho kódu.
  4. Veľká komunita používateľov: STL je široko používaný, čo znamená, že existuje veľká komunita vývojárov, ktorí môžu poskytnúť podporu a zdroje, ako sú návody a fóra.

Nevýhody C++ Standard Template Library (STL):

  1. Krivka učenia: Naučiť sa STL môže byť ťažké, najmä pre začiatočníkov, kvôli jeho zložitej syntaxi a používaniu pokročilých funkcií, ako sú iterátory a funkčné objekty.
  2. Nedostatok kontroly: Pri používaní STL sa musíte spoliehať na implementáciu poskytovanú knižnicou, čo môže obmedziť vašu kontrolu nad určitými aspektmi vášho kódu.
  3. Výkon: V niektorých prípadoch môže použitie STL viesť k pomalším časom vykonávania v porovnaní s vlastným kódom, najmä pri práci s malým množstvom údajov.