Общие сведения о стандартной библиотеке C++ (STL)
Все сущности библиотеки C++ объявляются или определяются в одном или нескольких стандартных заголовках. Эта реализация включает два других заголовка и <hash_map>
<hash_set>
, которые не требуются стандарту C++. Полный список заголовков, поддерживаемых этой реализацией, см. в справочнике по файлам заголовков.
Стандарт C++ определяет два типа соответствующих библиотек:
- Размещенная реализация, которая поддерживает все необходимые заголовки стандартной библиотеки, описанные стандартом ISO C++.
- Стандартная реализация, требующая только подмножества заголовков стандартной библиотеки. Необходимое подмножество:
Подмножество заголовка freestanding | ||
---|---|---|
<atomic> (объявление по крайней мере atomic_signed_lock_free и atomic_unsigned_lock_free ) |
<cstdint> |
<ranges> |
<bit> |
<cstdlib> (объявление по крайней мереabort , , atexit , at_quick_exit , 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> |
Следующие заголовки являются устаревшими, так как C++11: <ciso646>
, <cstdalign>
и <cstdbool>
.
Другие различия между автономными и размещенными реализациями:
- Для размещенных реализаций требуется глобальная функция с именем
main
. Бесплатная реализация может определять собственные функции запуска и завершения. - Размещенные реализации должны поддерживать несколько потоков, выполняющихся одновременно. Реализации автономных реализаций определяют, поддерживает ли их библиотека параллельные потоки.
Стандартная библиотека Microsoft C++ удовлетворяет требованиям как к автономному, так и к размещению.
Заголовки библиотек C++ имеют два широких подраздела:
Этот раздел содержит следующие разделы:
Дополнительные сведения о библиотеках времени выполнения Visual C++ см. в разделе Функции библиотеки CRT.
Примечание
Реализация стандартной библиотеки C++ майкрософт часто называется библиотекой STL или стандартной библиотекой шаблонов. Хотя стандартная библиотека C++ — это официальное название библиотеки, как определено в стандарте ISO 14882, из-за популярного использования STL и стандартной библиотеки шаблонов в поисковых системах, иногда используйте эти имена, чтобы упростить поиск нашей документации. С исторической точки зрения, «STL» первоначально ссылался на стандартную библиотеку шаблонов, написанную Александром Стефановым. Части этой библиотеки были стандартизированы в стандартной библиотеке C++ вместе с библиотекой среды выполнения ISO C, частями библиотеки Boost и другими функциями. Иногда "STL" также используется для ссылки на контейнеры и алгоритмы стандартной библиотеки C++, адаптированной из STL Стефанова. В этой документации стандартная библиотека шаблонов (STL) относится к стандартной библиотеке C++ в целом.