Пространства имён
Варианты
Действия

Заголовочные файлы стандартной библиотеки C++

Материал из cppreference.com
< cpp
 
 
 

Интерфейс стандартной библиотеки C++ определяется следующим набором заголовочных файлов

Содержание

Библиотека утилит

<cstdlib> Утилиты общего назначения: управление программой, динамическое выделение памяти, случайные числа, сортировка и поиск
<csignal> Функции и макро-константы для управления сигналами
<csetjmp> Макросы (и функции), которые сохраняют (и восстанавливают) контекст выполнения
<cstdarg> Обработка списков аргументов произвольной длины
<typeinfo> Утилиты для получения информации о типах во время выполнения
<typeindex> (начиная с C++11) std::type_index
<type_traits> (начиная с C++11) Информация о типах в процессе компиляции
<bitset> шаблон класса std::bitset
<functional> Функциональные объекты, функциональные вызовы, операции связывания и ссылочные обёртки
<utility> Различные компоненты утилит
<ctime> Си-подобные утилиты, связанные с временем и датами
<chrono> (начиная с C++11) C++ утилиты времени
<cstddef> стандартные макросы и typedef'ы
<initializer_list> (начиная с C++11) шаблон класса std::initializer_list
<tuple> (начиная с C++11) шаблон класса std::tuple
<any> (начиная с C++17) класс std::any
<optional> (начиная с C++17) шаблон класса std::optional
<variant> (начиная с C++17) шаблон класса std::variant
<compare> (начиная с C++20) Поддержка оператора трёхстороннего сравнения
Управление динамической памятью
<new> Низкоуровневые средства управления памятью
<memory> Высокоуровневые средства управления памятью
<scoped_allocator> (начиная с C++11) Вложенный класс аллокатора
<memory_resource> (начиная с C++17) Полиморфные аллокаторы и ресурсы памяти
Границы числовых типов
<climits> границы интегральных типов
<cfloat> границы вещественных типов
<cstdint> (начиная с C++11) типы фиксированного размера и границы других типов
<cinttypes> (начиная с C++11) макросы форматирования , типы intmax_t и uintmax_t и преобразования
<limits> стандартизированный способ получить информация об арифметических типах
Обработка ошибок
<exception> Утилиты обработки ошибокEx
<stdexcept> Стандартные объекты ошибок
<cassert> Условно-компилируемый макрос, который сравнивает аргумент с нулём
<system_error> (начиная с C++11) определяет std::error_code, платформо-зависимый код ошибки
<cerrno> Макрос, содержащий номер последней ошибки

Библиотека строк

<cctype> Функции определения класса символов
<cwctype> Функции определения класса широких символов
<cstring> Различные функции обработки строк
<cwchar> Различные функции обработки широких и многобайтовых строк
<cuchar> (начиная с C++11) C-style Функции преобразования символов юникода
<string> шаблон класса std::basic_string
<string_view> (начиная с C++17) шаблон класса std::basic_string_view
<charconv> (начиная с C++20) std::to_chars и std::from_chars

Библиотека контейнеров

<array> (начиная с C++11) контейнер std::array
<vector> контейнер std::vector
<deque> контейнер std::deque
<list> контейнер std::list
<forward_list> (начиная с C++11) контейнер std::forward_list
<set> контейнеры std::set и std::multiset
<map> ассоциативные контейнеры std::map и std::multimap
<unordered_set> (начиная с C++11) неупорядоченные контейнеры std::unordered_set и std::unordered_multiset
<unordered_map> (начиная с C++11) неупорядоченные ассоциативные контейнеры std::unordered_map и std::unordered_multimap
<stack> контейнер-обёртка std::stack
<queue> структуры данных std::queue и std::priority_queue

Библиотека алгоритмов

<algorithm> Алгоритмы для работы с контейнерами
<execution> (C++17) Предопределённые политики выполнения для параллельных версий алгоритмов

Библиотека итераторов

<iterator> Итераторы для контейнеров

Библиотека чисел

<cmath> Общие математические функции
<complex> Комплексные числа
<valarray> Класс для представления и обработки массивов значений
<rиom> (начиная с C++11) Генераторы случайных чисел и распределений
<numeric> Числовые операции со значениями в контейнерах
<ratio> (начиная с C++11) Рациональная арифметика на этапе компиляции
<cfenv> (начиная с C++11) Функции доступа к окружению вещественных чисел

Библиотека ввода/вывода

<iosfwd> forward-объявления всех классов библиотеки ввода/вывода
<ios> класс std::ios_base, шаблона класса std::basic_ios и несколько typedef'ов
<istream> шаблон класса std::basic_istream и несколько typedef'ов
<ostream> шаблоны классов std::basic_ostream, std::basic_iostream и несколько typedef'ов
<iostream> несколько объектов стандартных потоков
<fstream> шаблоны классов std::basic_fstream, std::basic_ifstream, std::basic_ofstream и несколько typedef'ов
<sstream> шаблоны классов std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream и несколько typedef'ов
<syncstream> (начиная с C++20) std::basic_osyncstream, std::basic_syncbuf и typedef'ы
<strstream>(устарело) std::strstream, std::istrstream, std::ostrstream
<iomanip> Вспомогательные функции для управления форматом ввода и вывода
<streambuf> шаблон класса std::basic_streambuf
<cstdio> Си-подобные функции ввода/вывода

Библиотека локализации

<locale> Утилиты локализации
<clocale> Утилиты локализации языка Си
<codecvt> (начиная с C++11) (deprecated in C++17) Средства преобразования Unicode

Библиотеки регулярных выражений

<regex> (начиная с C++11) Классы, алгоритмы и итераторы для поддержки работы регулярных выражений

Библиотека атомарных операций

<atomic> (начиная с C++11) Библиотека атомарных операций

Библиотека потоков

<thread> (начиная с C++11) класс std::thread и вспомогательные функции
<mutex> (начиная с C++11) примитивы взаимного исключения
<shared_mutex> (начиная с C++14) разделяемые примитивы взаимного исключения
<future> (начиная с C++11) примитивы для асинхронных вычислений
<condition_variable> (начиная с C++11) условное ожидание потоков

Библиотека файловой системы

<filesystem> (начиная с C++17) класс std::path и вспомогательные функции

Экспериментальные библиотеки

<experimental/algorithm> (library fundamentals TS) Расширения стандартной библиотеки и Расширения для Параллелизма
<experimental/any> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/chrono> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/deque> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/execution_policy> (parallelism TS) Расширения для Параллелизма
<experimental/exception_list> (parallelism TS) Расширения для Параллелизма
<experimental/filesystem> (filesystem TS) Библиотека файловой системы
<experimental/forward_list> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/future> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/list> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/functional> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/map> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/memory> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/memory_resource> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/numeric> (parallelism TS) Расширения для Параллелизма
<experimental/optional> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/ratio> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/regex> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/set> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/string> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/string_view> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/system_error> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/tuple> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/type_traits> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/unordered_map> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/unordered_set> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/utility> (library fundamentals TS) Расширения стандартной библиотеки
<experimental/vector> (library fundamentals TS) Расширения стандартной библиотеки

[править] C compatibility headers

Для некоторых стандартных заголовочных файлов Си, имеющих вид xxx.h, стандартная библиотека C++ включает как заголовочный файл с таким же именем, так и другой заголовочный файл с именем cxxx (все значимые заголовочные файлы вида cxxx перечислены ниже).

Кроме исключения в виде complex.h , каждый заголовочный файл стандартной библиотеки C++ вида xxx.h помещает в глобальное пространство имён каждый элемент, который соответствующий заголовочный файл вида cxxx помещает в пространство имён std.

Этим заголовочным файлам разрешается также помещать такие же элементы в протранство имён std, а соответствующим заголовочным файлам вида cxxx разрешается также помещать такие же элементы в глобальное пространство имён: включение <cstdlib> точно предоставит std::malloc и также может предоставить ::malloc. Включение <stdlib.h> точно предоставит ::malloc и также может предоставить std::malloc. Это относится даже к функциям и перегрузкам функций, которые не являются частью стандартной библиотеки Си.

<assert.h> (устарело) ведёт себя так, как если бы каждый элемент из <cassert> находился в глобальном пространстве имён
<ctype.h> (устарело) ведёт себя так, как если бы каждый элемент из <cctype> находился в глобальном пространстве имён
<errno.h> (устарело) ведёт себя так, как если бы каждый элемент из <cerrno> находился в глобальном пространстве имён
<fenv.h> (устарело) ведёт себя так, как если бы каждый элемент из <cfenv> находился в глобальном пространстве имён
<float.h> (устарело) ведёт себя так, как если бы каждый элемент из <cfloat> находился в глобальном пространстве имён
<inttypes.h> (устарело) ведёт себя так, как если бы каждый элемент из <cinttypes> находился в глобальном пространстве имён
<limits.h> (устарело) ведёт себя так, как если бы каждый элемент из <climits> находился в глобальном пространстве имён
<locale.h> (устарело) ведёт себя так, как если бы каждый элемент из <clocale> находился в глобальном пространстве имён
<math.h> (устарело) ведёт себя так, как если бы каждый элемент из <cmath> находился в глобальном пространстве имён
за исключением элементов специальных математических функций
<setjmp.h> (устарело) ведёт себя так, как если бы каждый элемент из <csetjmp> находился в глобальном пространстве имён
<signal.h> (устарело) ведёт себя так, как если бы каждый элемент из <csignal> находился в глобальном пространстве имён
<stdarg.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstdarg> находился в глобальном пространстве имён
<stddef.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstddef> находился в глобальном пространстве имён
за исключением элементов std::byte и связанных функций
<stdint.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstdint> находился в глобальном пространстве имён
<stdio.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstdio> находился в глобальном пространстве имён
<stdlib.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstdlib> находился в глобальном пространстве имён
<string.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstring> находился в глобальном пространстве имён
<time.h> (устарело) ведёт себя так, как если бы каждый элемент из <ctime> находился в глобальном пространстве имён
<uchar.h> (устарело) ведёт себя так, как если бы каждый элемент из <cuchar> находился в глобальном пространстве имён
<wchar.h> (устарело) ведёт себя так, как если бы каждый элемент из <cwchar> находился в глобальном пространстве имён
<wctype.h> (устарело) ведёт себя так, как если бы каждый элемент из <cwctype> находился в глобальном пространстве имён

[править] Неподдерживаемые заголовочные файлы языка Си

Заголовочные файлы языка Си <stdatomic.h>, <stdnoreturn.h> и <threads.h> не включены в C++ и не имеют эквивалентных вида cxxx.

[править] Пустые заголовочные файлы языка Си

Заголовочные файлы <complex.h>, <ccomplex>, <tgmath.h> и <ctgmath> не содержат никакого содержимого из стандартной библиотеки Си и вместо этого просто включают другие заголовочные файлы стандартной библиотеки C++. Использование всех этих заголовочных файлов считается устаревшим в C++.

<ccomplex> (начиная с C++11)(deprecated in C++17) только лишь включает заголовочный файл <complex>
<complex.h> (устарело) только лишь включает заголовочный файл <complex>
<ctgmath> (начиная с C++11)(deprecated in C++17) только лишь включает заголовочные файлы <complex> и <cmath>: перегрузки, эквивалентные содержимому заголовочного файла языка Си tgmath.h уже предоставляются этими заголовочными файлами
<tgmath.h> (устарело) только лишь включает заголовочный файл <ctgmath>

[править] Бессмыленные заголовочные файлы языка Си

Заголовочные файлы <ciso646>, <cstdalign> и <cstdbool> не имеют смысла в C++ потому что макросы, которые они предоставляли для Си, являются ключевыми словами языка C++.

<ciso646> пустой заголовочный файл. Макрос, который находился в iso646.h в Си, является ключевым словом в C++
<iso646.h> (устарело) ведёт себя так, как если бы каждый элемент из <ciso646> находился в глобальном пространстве имён
<cstdalign> (начиная с C++11)(deprecated in C++17) определяет один из константных макросов совместимости
<stdalign.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstdalign> находился в глобальном пространстве имён
<cstdbool> (начиная с C++11)(deprecated in C++17) определяет один из константных макросов совместимости
<stdbool.h> (устарело) ведёт себя так, как если бы каждый элемент из <cstdbool> находился в глобальном пространстве имён

[править] См. также

Справка по CСтандартные заголовочные файлы языка Си