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
- ↑ 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 .
- ↑ Změny standardní knihovny C++