Стандартная библиотека языка Си
- 1 year ago
- 0
- 0
В языке программирования C++ термин Стандартная Библиотека означает коллекцию классов и функций , написанных на . Стандартная Библиотека поддерживает несколько основных контейнеров, функций для работы с этими контейнерами, объектов-функции, основных типов строк и потоков (включая интерактивный и файловый ввод-вывод), поддержку некоторых языковых особенностей, и часто используемые функции для выполнения таких задач, как, например, нахождение квадратного корня числа. Стандартная Библиотека языка C++ также включает в себя спецификации стандарта ISO C90 стандартной библиотеки языка Си . Функциональные особенности Стандартной Библиотеки объявляются внутри пространства имен std .
Стандартная библиотека шаблонов (STL) — подмножество стандартной библиотеки C++ и содержит контейнеры, алгоритмы, итераторы, объекты-функции и т. д. , хотя некоторые программисты используют термин «STL» вместе (или попеременно) с термином «Стандартная библиотека C++».
Заголовочные файлы стандартной библиотеки C++ не имеют расширения «.h».
Стандартная библиотека C++ содержит последние расширения C++ стандарта ANSI (включая библиотеку стандартных шаблонов и новую библиотеку iostream). Она представляет собой набор файлов заголовков. В новых файлах заголовков отсутствует расширение H.
Название | Организация | Домашнаяя страница | Акроним | Лицензия | Последний выпуск |
---|---|---|---|---|---|
Стандартная библиотека GNU | GNU Project и Free Software Foundation | libstdc++ | GPLv3 | 3 февраля 2016 | |
Стандартная библиотека LLVM | LLVM Developer Group | libc++ | Apache License 2.0 with LLVM Exceptions | Каждые 2 недели | |
Стандартная библиотека NVIDIA | Nvidia | libcu++ | Apache License 2.0 with LLVM Exceptions | 15 марта 2023 | |
Стандартная библиотека Microsoft | Microsoft | MSVC STL | Apache License 2.0 with LLVM Exceptions | Ежедневно | |
Стандартная библиотека HPX для параллелизма и многопоточности | STELLAR Group | HPX | Boost Software License 1.0 | 6 августа 2022 | |
Electronic Arts STL | Electronic Arts | EASTL | BSD 3-Clause License | 20 октября 2021 | |
Dinkum | Dinkumware | Неизвестно | Коммерческая | Неизвестно | |
Стандартная библиотека Cray | Cray User Group | Неизвестно | Коммерческая | Неизвестно |
Была разработана фирмой Rogue Wave Software , позже была передана Apache Software Foundation . Однако спустя 5 лет с момента выхода последней версии было решено закончить работу над проектом и переместить его в Apache Attic .
Следующие библиотеки реализуют значительную часть стандартной библиотеки C++:
Название | Домашняя страница | Описание |
---|---|---|
Abseil | Коллекция библиотек, которая используется в проектах Google | |
Folly | Набор библиотек C++14 которые используются Facebook | |
Bareflank Support Library | Библиотека, в которой все возможно исполнить на этапе компиляции |
Нижеперечисленные файлы содержат объявления Стандартной Библиотеки.
std::bitset
—
битовый массив
.
std::deque
—
двусвязная очередь
.
std::list
—
двусвязный список
.
std::map
и
std::multimap
—
Ассоциативный массив
и
.
std::queue
— односторонняя
очередь
.
std::set
и
std::multiset
— сортированные ассоциативные контейнеры или
множества
.
std::stack
—
стек
.
std::vector
—
динамический массив
.
.
std::logic_error
и
std::runtime_error
, причем оба происходят из
std::exception
.
std::pair
для работы с парами (двучленными
кортежами
) объектов.
<regex>
std::istream
и других необходимых классов для ввода.
std::ostream
и других необходимых классов для вывода.
std::sstream
и других необходимых классов для работы со строками.
std::complex
и связанные функции для работы с
комплексными числами
.
std::valarray
— класс
массивов
, оптимизированный для числовой обработки.
std::exception
— базовый класс всех перехватов исключений в Стандартной Библиотеке.
std::numeric_limits
, используемый для описания свойств базовых числовых типов.
new
и
delete
, а также другие функции и типы, составляющие основу
управления памятью
в C++.
Каждый заголовочный файл из стандартной библиотеки языка Си включен в стандартную библиотеку языка C++ под различными именами, созданными путём отсечения расширения .h и добавлением 'c' в начале, например, 'time.h' стал 'ctime'. Единственное отличие между этими заголовочными файлами и традиционными заголовочными файлами стандартной библиотеки языка Си заключается в том, что функции должны быть помещены в пространство имен std:: (хотя некоторые компиляторы сами делают это). В стандарте ISO C функции стандартной библиотеки разрешены для реализации , которые не разрешены в ISO C++.