В языке программирования C++ термин Стандартная библиотека означает коллекцию классов и функций, написанных на базовом языке. Стандартная библиотека поддерживает несколько основных контейнеров, функций для работы с этими контейнерами, объектов-функции, основных типов строк и потоков (включая интерактивный и файловый ввод-вывод), поддержку некоторых языковых особенностей, и часто используемые функции для выполнения таких задач, как, например, нахождение квадратного корня числа. Стандартная библиотека языка C++ также включает в себя спецификации стандарта ISO C90 стандартной библиотеки языка Си. Функциональные особенности Стандартной библиотеки объявляются внутри пространства имён std.

Стандартная библиотека шаблонов (STL) — подмножество стандартной библиотеки C++. Содержит контейнеры, алгоритмы, итераторы, объекты-функции и т. д., хотя некоторые программисты используют термин «STL» вместе (или попеременно) с термином «Стандартная библиотека C++».

Заголовочные файлы стандартной библиотеки C++ не имеют расширения «.h».

Стандартная библиотека C++ содержит последние расширения C++ стандарта ANSI (включая библиотеку стандартных шаблонов и новую библиотеку iostream). Она представляет собой набор файлов заголовков. В новых файлах заголовков отсутствует расширение H.Изменения стандартной библиотеки C++

Реализации Название Организация Домашнаяя страница Акроним Лицензия Последний выпуск Стандартная библиотека GNU GNU Project и Free Software Foundation libstdc++ GPLv3 Стандартная библиотека LLVM LLVM Developer Group libc++ Apache License 2.0 with LLVM Exceptions Каждые 2 недели Стандартная библиотека NVIDIA Nvidia libcu++ Apache License 2.0 with LLVM Exceptions Стандартная библиотека Microsoft Microsoft MSVC STL Apache License 2.0 with LLVM Exceptions Ежедневно Стандартная библиотека HPX для параллелизма и многопоточности STELLAR Group HPX Boost Software License 1.0 Electronic Arts STL Electronic Arts EASTL BSD 3-Clause License Dinkum Dinkumware Неизвестно Коммерческая Неизвестно Стандартная библиотека Cray Cray User Group Неизвестно Коммерческая Неизвестно

Заброшенные Стандартная библиотека Apache Была разработана фирмой Rogue Wave Software, позже была передана Apache Software Foundation. Однако спустя 5 лет с момента выхода последней версии было решено закончить работу над проектом и переместить его в Apache Attic.

Смотрите также Следующие библиотеки реализуют значительную часть стандартной библиотеки C++: Название Домашняя страница Описание Abseil Коллекция библиотек, которая используется в проектах Google Folly Набор библиотек C++14 которые используются Facebook Bareflank Support Library Библиотека, в которой все возможно исполнить на этапе компиляции

Стандартные заголовочные файлы Нижеперечисленные файлы содержат объявления Стандартной библиотеки.

Контейнеры <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++. <cassert> <cctype> <cerrno> <cfloat> <climits> <cmath> <csetjmp> <csignal> <cstdlib> <cstddef> <cstdarg> <cstdio> <cstring> <ctime> <cwchar> <cwctype>

См. также Стандартная библиотека Apache C++ (stdcxx) Boost (библиотека) C++ Technical Report 1 C POSIX library Стандартная библиотека

Литература Бьёрн Страуструп: Язык программирования C++, Addison-Wesley, ISBN 0-201-70073-5

Ссылки Microsoft MSDN Library — Справочник по Стандартной библиотеке C++ Справочник по Стандартной библиотеке C++ The GNU Standard C++ Library STLport Dinkumware Standard C++ Library Общие сведения о языке программирования C++ и stl библиотеках

Примечания

Категория:Стандартные библиотеки Категория:Стандартная_библиотека_C++