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