Standardní knihovna C++

V programovacím jazyce C++ termín Standardní knihovna znamená kolekci tříd a funkcí napsaných v základním jazyce . Standardní knihovna podporuje několik hlavních kontejnerů, funkce pro práci s těmito kontejnery, funkční objekty, základní typy řetězců a proudů (včetně interaktivních a souborových I/O), podporu některých jazykových funkcí a běžně používané funkce pro provádění úloh, jako je , hledání druhé odmocniny čísla. Standardní knihovna C++ také zahrnuje specifikace standardní knihovny ISO C90 C. Funkčnost standardní knihovny je deklarována v rámci jmenného prostoru std .

Knihovna standardních šablon (STL) je podmnožinou standardní knihovny C++ a obsahuje kontejnery, algoritmy, iterátory, funkční objekty atd. [1] ačkoli někteří programátoři používají termín „STL“ ve spojení s (nebo zaměnitelně) s termínem "Standardní knihovna C++" ".

Soubory záhlaví standardní knihovny C++ nemají příponu ".h".

Standardní knihovna C++ obsahuje nejnovější rozšíření ANSI C++ (včetně knihovny standardních šablon a nové knihovny iostream). Jedná se o sadu hlavičkových souborů. V nových hlavičkových souborech chybí přípona H. [2]

Standardní hlavičkové soubory

Následující soubory obsahují deklarace standardní knihovny.

Kontejnery

<bitset> Implementuje specializovanou kontejnerovou třídu std::bitset , bitmapu . <deque> Implementuje šablonu třídy kontejneru std::deque , dvojitě propojenou frontu . <seznam> Implementuje šablonu třídy kontejneru std::list , dvojitě propojený seznam . <mapa> Implementuje šablony tříd kontejnerů std::map a std::multimap- Asociativní pole a Multimapping . <fronta> Implementuje třídu kontejnerového adaptéru , std::queue jednosměrnou frontu . <set> Implementuje šablony tříd kontejnerů std::seta std::multiset tříděné asociativní kontejnery nebo sady . <zásobník> Implementuje třídu adapter-container class std::stack , stack . <vektor> Implementuje šablonu třídy kontejneru std::vector , dynamické pole .

Obecné

<algoritmus> Implementuje definice mnoha algoritmů pro práci s kontejnery. <funkční> Implementuje několik funkčních objektů navržených pro práci se standardními algoritmy. <iterátor> Implementuje třídy a šablony pro práci s iterátory . <místní nastavení> Implementuje třídy a šablony pro práci s národními prostředími . <paměť> Implementuje nástroje pro správu paměti C++ , včetně std::auto_ptr. <stdexcept> Obsahuje standardní zpracování chyb tříd jako std::logic_errora std::runtime_error, které jsou obě odvozeny od std::exception. <utilita> Implementuje šablonu třídy std::pairpro práci s dvojicemi (dvoučlennými n- ticemi ) objektů.

Řetězce

<řetězec> Implementuje standardní třídy řetězců a šablony.

<regex>

Novinka v C++11 . Poskytuje nástroje pro porovnávání řetězců se vzorem pomocí regulárních výrazů .

Streamování a I/O

<fstream> Implementuje nástroje pro vstup a výstup souborů. Viz fstream . <ios> Implementuje několik typů a funkcí, které tvoří základ operací s iostreamy. <iostream> Implementuje základní vstup a výstup jazyka C++. Viz iostream . <iosfwd> Implementuje dopředné deklarace pro několik šablon tříd souvisejících s I/O. <iomanip> Implementuje nástroje pro práci s formátováním výstupu, jako je základní , používané při formátování celých a přesných hodnot čísel s plovoucí desetinnou čárkou . <istream> Implementuje šablonu třídy std::istreama další požadované vstupní třídy. <stream> Implementuje šablonu třídy std::ostreama další požadované třídy pro výstup. <stream> Implementuje šablonu třídy std::sstreama další potřebné třídy pro práci s řetězci. <streambuf>

Číselné

<komplexní> Implementuje šablonu třídy std::complexa související funkce pro práci s komplexními čísly . <číselný> Implementuje algoritmy pro numerické zpracování <valarray> Implementuje šablonu třídy , std::valarray třídu pole , která je optimalizována pro numerické zpracování.

Jazyková podpora

<výjimka> Implementuje několik typů a funkcí souvisejících se zpracováním výjimek , včetně std::exception základní třídy pro veškeré zpracování výjimek ve Standardní knihovně. <limity> implementuje šablonu třídy std::numeric_limitspoužívanou k popisu vlastností základních číselných typů. <nové> Implementuje operátory newa delete, stejně jako další funkce a typy, které tvoří základ správy paměti v C++. <typeinfo> Implementuje nástroje pro práci s dynamickou identifikací datových typů v C++.

C Standardní knihovna

Každý hlavičkový soubor ze standardní knihovny C je zahrnut do standardní knihovny C++ pod různými názvy vytvořenými odříznutím přípony .h a přidáním 'c' na začátek, například 'time.h' se stalo 'ctime'. Jediný rozdíl mezi těmito hlavičkovými soubory a tradičními hlavičkami standardní knihovny C je v tom, že funkce musí být umístěny ve jmenném prostoru std:: (ačkoli některé kompilátory to dělají samy). Ve standardu ISO C je povoleno implementovat standardní knihovní funkce pomocí maker , což není povoleno v ISO C++.

Viz také

Literatura

Odkazy

Poznámky

  1. Holzner, Steven. C++: Černá kniha. — Scottsdale, Ariz. : Coriolis Group, 2001. - S. 648. - „STL se skládá z kontejnerů , iterátorů , funkčních objektů a algoritmů “. — ISBN 1-57610-777-9 .
  2. Změny standardní knihovny C++