Interested Article - Стандартная библиотека языка C++

Ввод-вывод:

Многопоточность :

  • atomic (C++11)
  • condition_variable (C++11)
  • future (C++11)
  • mutex (C++11)
  • shared_mutex (C++14)
  • thread (C++11)

Прочие:

  • algorithm
  • chrono (C++11)
  • codecvt (C++11)
  • complex
  • exception
  • functional
  • initializer_list (C++11)
  • 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
Стандартная библиотека шаблонов

Последовательные контейнеры :

Ассоциативные контейнеры:

  • map
  • (C++11)
  • (C++11)
  • (C++11)
  • (C++11)

Контейнеры-адаптеры:

  • priority_queue
Стандартная библиотека языка программирования Си

В языке программирования 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 ; 8 лет назад ( 2016-02-03 )
Стандартная библиотека 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 ; 11 месяцев назад ( 2023-03-15 )
Стандартная библиотека Microsoft Microsoft MSVC STL Apache License 2.0 with LLVM Exceptions Ежедневно
Стандартная библиотека HPX для параллелизма и многопоточности STELLAR Group HPX Boost Software License 1.0 6 августа 2022 ; 18 месяцев назад ( 2022-08-06 )
Electronic Arts STL Electronic Arts EASTL BSD 3-Clause License 20 октября 2021 ; 2 года назад ( 2021-10-20 )
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++, включая шаблон класса .
<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++.

См. также

Литература

Ссылки

Примечания

  1. Holzner, Steven. C++ : Black Book. — Scottsdale, Ariz. : Coriolis Group, 2001. — P. 648. — «The STL is made up of containers , iterators , function objects , and algorithms ». — ISBN 1-57610-777-9 .
  2. . Дата обращения: 17 апреля 2023. 8 апреля 2023 года.
  3. Brett Porter. . stdcxx-dev mailing list (18 июля 2013). Дата обращения: 27 февраля 2014. 22 сентября 2013 года.
Источник —

Same as Стандартная библиотека языка C++