Sdílet prostřednictvím


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_exitatexit, exitquick_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í:

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.

Viz také

Standardní knihovna C++