Přehled standardní knihovny C++ (STL)
Všechny entity knihovny C++ jsou deklarovány nebo definovány v jedné nebo více standardních hlavičkách. Tato implementace zahrnuje dvě další hlavičky a <hash_map>
<hash_set>
, které nejsou vyžadovány standardem C++. Úplný seznam hlaviček, které tato implementace podporuje, najdete v referenčních informacích k souborům hlaviček.
Standard C++ definuje dva druhy odpovídajících knihoven:
- Hostovaná implementace, která podporuje všechny požadované hlavičky standardní knihovny popsané standardem ISO jazyka C++.
- Bezplatná implementace, která vyžaduje pouze podmnožinu standardních hlaviček knihovny. Požadovaná podmnožina je:
Podmnožina záhlaví volného místa | ||
---|---|---|
<atomic> (deklaruje alespoň atomic_signed_lock_free a atomic_unsigned_lock_free ) |
<cstdint> |
<ranges> |
<bit> |
<cstdlib> (deklarující alespoň abort , at_quick_exit atexit , exit quick_exit ) |
<ratio> |
<cfloat> |
<exception> |
<tuple> |
<climits> |
<functional> |
<typeinfo> |
<compare> |
<initializer_list> |
<source_location> |
<concepts> |
<iterator> |
<type_traits> |
<coroutine> |
<limits> |
<utility> |
<cstdarg> |
<memory> |
<version> |
<cstddef> |
<new> |
Následující hlavičky jsou zastaralé od jazyka C++11: <ciso646>
, <cstdalign>
a <cstdbool>
.
Mezi bezplatné a hostované implementace patří i další rozdíly:
- Hostované implementace vyžadují globální funkci s názvem
main
. Bezplatná implementace může definovat vlastní funkce spouštění a ukončení. - Hostované implementace musí podporovat více než jedno vlákno spuštěné současně. Implementátory bezplatných implementací se rozhodnou, jestli jejich knihovna podporuje souběžná vlákna.
Standardní knihovna Microsoft C++ splňuje požadavky na bezplatné i hostované.
Hlavičky knihovny C++ mají dvě širší dílčí dělení:
Referenční konvence standardní knihovny C++ (STL).
Tato část obsahuje následující části:
Další informace o knihovnách za běhu jazyka Visual C++ naleznete v tématu Funkce knihovny CRT.
Poznámka:
Implementace standardní knihovny C++ od Microsoftu se často označuje jako STL nebo standardní knihovna šablon. I když je standardní knihovna jazyka C++ oficiálním názvem knihovny, jak je definováno ve standardu ISO 14882, kvůli oblíbenému použití knihovny STL a Standardní knihovny šablon ve vyhledávacích webech používáme tyto názvy, abychom si usnadnili nalezení naší dokumentace. Z historického hlediska "STL" původně odkazovat na standardní knihovnu šablon napsanou Alexanderem Stepanovem. Části této knihovny byly standardizovány ve standardní knihovně C++ spolu s knihovnou modulu runtime ISO C, částmi knihovny Boost a dalšími funkcemi. Někdy se "STL" používá také k odkazování na kontejnery a algoritmy částí standardní knihovny jazyka C++ přizpůsobené hodnotě STL stepanova. V této dokumentaci odkazuje standardní knihovna šablon (STL) na standardní knihovnu C++ jako celek.