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.