Avatar ·

Qual é a diferença entre STL e a Biblioteca Padrão do C++?

Olá, colegas! Sou um desenvolvedor C++ iniciante e constantemente me deparo com os termos "STL" e "Biblioteca Padrão do C++". Parece que todos os usam como sinônimos, mas sinto que não são exatamente a mesma coisa. Por exemplo, escrevo este código: ```cpp #include #include #include int main() { std::vector numbers = {3, 1, 4, 1, 5, 9}; std::sort(numbers.begin(), numbers.end()); for (int n : numbers) { std::cout << n << " "; } return 0; } ``` Aqui eu uso `` e `` — isso eu costumo chamar de STL. Mas `` e `std::cout` também fazem parte da biblioteca padrão. Então, STL é apenas uma parte da biblioteca padrão? Ou são coisas diferentes? Na internet há montes de debates: uns dizem que a STL morreu, outros que é a base do C++. Preciso de um entendimento claro: o que exatamente considerar como STL, e o que como Biblioteca Padrão? E por que essa confusão surgiu? Ficarei grato por uma resposta detalhada.