Подтвердить что ты не робот

Версии стандартной библиотеки С++

В чем разница между библиотекой GNU С++ (libstdС++), "Стандартная библиотека С++" , "Стандартная библиотека шаблонов" и "SGI STL". При программировании в Linux с компилятором GCC и программировании в Windos в MSVC (MicroSoft Visual С++), который по умолчанию используют стандартные библиотеки С++? Спасибо!

4b9b3361

Ответ 1

Стандартная библиотека С++ - общее определение того, какая функциональность/поведение должна предоставляться библиотекой (строки, пары, iostream, контейнеры, алгоритмы и т.д., хотя специфика варьируется в зависимости от версии стандарта С++).

Стандартная библиотека шаблонов (STL) - часть стандартной библиотеки С++, которая связана с контейнерами и алгоритмами (и итераторы, которые объединяют эти два). STL не был частью исходной библиотеки С++.

libstdС++ - конкретная реализация стандартной библиотеки С++.

SGI STL - конкретная реализация части STL стандартной библиотеки С++. Я считаю, что это была также одна из первых версий STL. До того, как STL стал частью библиотеки С++, разработчикам пришлось загружать STL отдельно (так же, как мы сейчас делаем с Boost).

Ответ 2

Говоря только о происхождении компонентов STL стандартных библиотек С++, используемых по умолчанию:

  • MSVC использует библиотеки Dinkumware (или, по-видимому, их подмножество, поскольку Dinkumware также будет продавать вам библиотеки дополнений для MSVC: -P)
  • GCC использует расширенную версию SGI STL как часть libstdС++

Если вы хотите поменять место STL, существуют другие реализации STL, такие как STLport. Выбрать свой яд.:-P