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

A biblioteca padrão C++ declara ou define todas as entidades da biblioteca em um ou mais cabeçalhos padrão. Para uma lista completa de cabeçalhos que esta implementação suporta, veja Referência de ficheiros de cabeçalho.

A norma C++ define dois tipos de bibliotecas conformes:

  • Uma implementação alojada, que suporta todos os cabeçalhos de biblioteca padrão necessários descritos pela norma ISO C++.
  • Uma implementação independente, que requer apenas um subconjunto dos cabeçalhos padrão da biblioteca. O subconjunto exigido é:
Subconjunto de cabeçalho independente    
<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 estão obsoletos desde C++11: <ciso646>, <cstdalign>, e <cstdbool>.

Outras diferenças entre implementações independentes e alojadas são:

  • Implementações alojadas requerem uma função global chamada main. Uma implementação independente pode definir as suas próprias funções de arranque e terminação.
  • As implementações alojadas devem suportar mais do que um thread a correr ao mesmo tempo. Implementadores de implementações independentes decidem se a sua biblioteca suporta threads concorrentes.

A biblioteca padrão Microsoft C++ satisfaz tanto requisitos independentes como hospedados.

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

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

Para mais informações sobre bibliotecas de tempo de execução Visual C++, consulte Funcionalidades da Biblioteca CRT.

Note

A implementação da Microsoft da Biblioteca Padrão C++ é frequentemente referida como STL ou Biblioteca de Modelos Padrão. Embora Biblioteca Padrão C++ seja o nome oficial da biblioteca conforme definido na ISO 14882, devido ao uso popular de "STL" e "Standard Template Library" nos motores de busca, ocasionalmente usamos esses nomes para facilitar a localização da nossa documentação. Do ponto de vista histórico, "STL" referia-se originalmente à Standard Template Library 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. Por vezes, "STL" também é usado para se referir às partes de contentores e algoritmos da Biblioteca Padrão C++ adaptada do STL de Stepanov. Nesta documentação, a Biblioteca de Modelos Padrão (STL) refere-se à Biblioteca Padrão C++ como um todo.

Ver também

Biblioteca padrão C++