Visão geral da STL (Biblioteca Padrão) C++

Todas as entidades da biblioteca C++ são declaradas ou definidas em um ou mais cabeçalhos padrão. Essa implementação inclui dois outros cabeçalhos, <hash_map> e <hash_set>, que não são necessários no Padrão C++. Para obter uma lista completa de cabeçalhos para os quais essa implementação dá suporte, confira Referência de arquivos de cabeçalho.

O padrão C++ define dois tipos de bibliotecas em conformidade:

  • Uma implementação hospedada, que dá suporte a todos os cabeçalhos de biblioteca padrão necessários descritos pelo padrão ISO do C++.
  • Uma implementação autônoma, que requer apenas um subconjunto de cabeçalhos de biblioteca padrão. O subconjunto necessário é:
Subconjunto de cabeçalhos autônomos
<atomic> (declarando pelo menos atomic_signed_lock_free e atomic_unsigned_lock_free) <cstdint> <ranges>
<bit> <cstdlib> (declarando pelo menos abort, atexit, at_quick_exit, exit, quick_exit) <ratio>
<cfloat> <exception> <tuple>
<climits> <functional> <typeinfo>
<compare> <initializer_list> <source_location>
<concepts> <iterator> <type_traits>
<coroutine> <limits> <utility>
<cstdarg> <memory> <version>
<cstddef> <new>

Os seguintes cabeçalhos foram preteridos desde o C++11: <ciso646>, <cstdalign> e <cstdbool>.

Outras diferenças entre implementações autônomas e hospedadas são:

  • As implementações hospedadas exigem uma função global chamada main. Uma implementação autônoma pode definir as próprias funções de inicialização e encerramento.
  • As implementações hospedadas devem dar suporte a mais de um thread em execução ao mesmo tempo. Os implementadores de implementações autônomas decidem se a biblioteca deve dar suporte a threads simultâneos.

A biblioteca padrão do Microsoft C++ atende aos requisitos autônomos e hospedados.

Os cabeçalhos da biblioteca C++ têm duas subdivisões mais amplas:

Esta seção contém as seguintes seções:

Para obter mais informações sobre as bibliotecas em tempo de execução Visual C++, consulte Recursos da biblioteca CRT.

Observação

A implementação da Biblioteca Padrão C++ da Microsoft geralmente é chamada de STL ou Biblioteca de Modelos Padrão. Embora Biblioteca Padrão do C++ seja o nome oficial da biblioteca conforme definido na ISO 14882, devido ao uso popular de "STL" e "Biblioteca de Modelos Padrão" nos mecanismos de pesquisa, eventualmente usamos esses nomes para facilitar a localização da documentação. De uma perspectiva histórica, originalmente, "STL" se referia à Biblioteca de Modelos Padrão escrita por Alexander Stepanov. Partes dessa biblioteca foram padronizadas na Biblioteca Padrão C++, juntamente com a biblioteca de runtime ISO C, partes da biblioteca Boost e outras funcionalidades. Às vezes, o termo "STL" também é usado para se referir aos contêineres e partes de algoritmos da Biblioteca Padrão C++ adaptados da STL de Stepanov. Nesta documentação, a STL (Biblioteca de Modelos Padrão) refere-se à Biblioteca Padrão C++ como um todo.

Confira também

Biblioteca Padrão do C++