A STL (Standard Template Library, Biblioteca Padrão de Templates) é um conjunto genérico de templates de classes e algoritmos que permitem aos programadores implementar facilmente estruturas de dados comuns, como filas, listas e pilhas
A STL fornece aos programadores as seguintes construções, agrupadas em três categorias:
A idéia por trás da STL é que a parte difícil dos tipos de dados complexos já foi feita. Se um programador quiser usar uma pilha de inteiros, tudo que ele precisa fazer é usar o seguinte código:
stack<int> myStack;
Com um esforço mínimo, pode agora usar push e pop nessa pilha. A STL é feita de tal maneira que pode-se usar qualquer tipo de dados, não só inteiros. A STL fornece as funções genéricas de uma pilha, não importa qual o tipo dos dados armazenados na pilha.
Além disso, a STL também provê vários algoritmos úteis – como binary_search, sort, e for_each – que podem ser usados em vários containers ou estruturas de dados.
iterators fornecem uma maneira genérica de percorrer as estruturas de dados da STL.
O cabeçalho <functional> define funções relacionadas com a criação de objetos de função.
O cabeçalho <memory> fornece estruturas simples de gerenciamento de memória como auto_ptr.
Existem várias funções utilitárias genéricas como make_pair no cabeçalho <utility>.