Стандартная библиотека языка программирования C++ |
---|
Ввод-вывод:
Многопоточность:
- atomic (C++11)
- condition_variable (C++11)
- future (C++11)
- mutex (C++11)
- shared_mutex (C++14)
- thread (C++11)
Прочие:
- algorithm
- bitset
- chrono (C++11)
- codecvt (C++11)
- complex
- exception
- functional
- initializer_list (C++11)
- iterator
- limits
- locale
- memory
- new
- numeric
- random (C++11)
- ratio (C++11)
- regex (C++11)
- stdexcept
- string
- system_error (C++11)
- tuple (C++11)
- typeindex (C++11)
- typeinfo
- type_traits (C++11)
- utility
- valarray
|
Стандартная библиотека шаблонов |
---|
|
Стандартная библиотека языка программирования Си |
---|
|
В языке программирования C++ термин Стандартная библиотека означает коллекцию классов и функций, написанных на базовом языке. Стандартная библиотека поддерживает несколько основных контейнеров, функций для работы с этими контейнерами, объектов-функции, основных типов строк и потоков (включая интерактивный и файловый ввод-вывод), поддержку некоторых языковых особенностей, и часто используемые функции для выполнения таких задач, как, например, нахождение квадратного корня числа. Стандартная библиотека языка C++ также включает в себя спецификации стандарта ISO C90 стандартной библиотеки языка Си. Функциональные особенности Стандартной библиотеки объявляются внутри пространства имён std.
Стандартная библиотека шаблонов (STL) — подмножество стандартной библиотеки C++. Содержит контейнеры, алгоритмы, итераторы, объекты-функции и т. д.[1], хотя некоторые программисты используют термин «STL» вместе (или попеременно) с термином «Стандартная библиотека C++».
Заголовочные файлы стандартной библиотеки C++ не имеют расширения «.h».
Стандартная библиотека C++ содержит последние расширения C++ стандарта ANSI (включая библиотеку стандартных шаблонов и новую библиотеку iostream). Она представляет собой набор файлов заголовков. В новых файлах заголовков отсутствует расширение H.[2]
Реализации
Заброшенные
Стандартная библиотека Apache
Была разработана фирмой Rogue Wave Software, позже была передана Apache Software Foundation.[3] Однако спустя 5 лет с момента выхода последней версии было решено закончить работу над проектом и переместить его в Apache Attic.[4]
Смотрите также
Следующие библиотеки реализуют значительную часть стандартной библиотеки C++:
Название |
Домашняя страница |
Описание
|
Abseil |
[9] |
Коллекция библиотек, которая используется в проектах Google
|
Folly |
[10] |
Набор библиотек C++14 которые используются Facebook
|
Bareflank Support Library |
[11] |
Библиотека, в которой все возможно исполнить на этапе компиляции
|
Стандартные заголовочные файлы
Нижеперечисленные файлы содержат объявления Стандартной библиотеки.
Контейнеры
- <bitset>
- Реализует специализированный класс контейнеров
std::bitset
— битовый массив.
- <deque>
- Реализует шаблон класса контейнера
std::deque
— двусвязная очередь.
- <list>
- Реализует шаблон класса контейнера
std::list
— двусвязный список.
- <map>
- Реализует шаблоны классов контейнеров
std::map
и std::multimap
— Ассоциативный массив и мультиотображение.
- <queue>
- Реализует класс адаптер-контейнера
std::queue
— односторонняя очередь.
- <set>
- Реализует шаблоны классов контейнеров
std::set
и std::multiset
— сортированные ассоциативные контейнеры или множества.
- <stack>
- Реализует класс адаптер-контейнера
std::stack
— стек.
- <vector>
- Реализует шаблон класса контейнеров
std::vector
— динамический массив.
Общие
- <algorithm>
- Реализует определения многих алгоритмов для работы с контейнерами.
- <functional>
- Реализует несколько объект-функций, разработанных для работы со стандартными алгоритмами.
- <iterator>
- Реализует классы и шаблоны для работы с итераторами.
- <locale>
- Реализует классы и шаблоны для работы с локалями.
- <memory>
- Реализует инструменты управления памятью в C++, включая шаблон класса
std::auto_ptr
.
- <stdexcept>
- Содержит стандартную обработку ошибок классов, например,
std::logic_error
и std::runtime_error
, причем оба происходят из std::exception
.
- <utility>
- Реализует шаблон класса
std::pair
для работы с парами (двучленными кортежами) объектов.
Строковые
- <string>
- Реализует стандартные строковые классы и шаблоны.
<regex>
- Новое в C++11. Предоставляет утилиты для сопоставления строк с шаблоном с помощью регулярных выражений.
Поточные и ввода-вывода
- <fstream>
- Реализует инструменты для файлового ввода и вывода. Смотрите fstream.
- <ios>
- Реализует несколько типов и функций, составляющих основу операций с iostreams.
- <iostream>
- Реализует основы ввода и вывода языка C++. Смотрите iostream.
- <iosfwd>
- Реализует предварительные объявления нескольких шаблонов классов, связанных с вводом-выводом.
- <iomanip>
- Реализует инструменты для работы с форматированием вывода, например базу, используемую при форматировании целых и точных значений чисел с плавающей запятой.
- <istream>
- Реализует шаблон класса
std::istream
и других необходимых классов для ввода.
- <ostream>
- Реализует шаблон класса
std::ostream
и других необходимых классов для вывода.
- <sstream>
- Реализует шаблон класса
std::sstream
и других необходимых классов для работы со строками.
- <streambuf>
Числовые
- <complex>
- Реализует шаблон класса
std::complex
и связанные функции для работы с комплексными числами.
- <numeric>
- Реализует алгоритмы для числовой обработки
- <valarray>
- Реализует шаблон класса
std::valarray
— класс массивов, оптимизированный для числовой обработки.
Языковая поддержка
- <exception>
- Реализует несколько типов и функций, связанных с обработкой исключений, включая
std::exception
— базовый класс всех перехватов исключений в Стандартной Библиотеке.
- <limits>
- реализует шаблон класса
std::numeric_limits
, используемый для описания свойств базовых числовых типов.
- <new>
- Реализует операторы
new
и delete
, а также другие функции и типы, составляющие основу управления памятью в C++.
- <typeinfo>
- Реализует инструменты для работы с динамической идентификацией типа данных в C++.
Стандартная Библиотека языка Си
Каждый заголовочный файл из стандартной библиотеки языка Си включен в стандартную библиотеку языка C++ под различными именами, созданными путём отсечения расширения .h и добавлением 'c' в начале, например, 'time.h' стал 'ctime'. Единственное отличие между этими заголовочными файлами и традиционными заголовочными файлами стандартной библиотеки языка Си заключается в том, что функции должны быть помещены в пространство имен std:: (хотя некоторые компиляторы сами делают это). В стандарте ISO C функции стандартной библиотеки разрешены для реализации макросами, которые не разрешены в ISO C++.
См. также
Литература
Ссылки
Примечания