Como o STL é um conjunto de classes de modelo C++, saber como essas classes são estruturadas é desejável para trabalhar com o STL.
C++ adicionou duas novas palavras-chave para dar suporte a modelos: "template"; e "nome do tipo". Usando-os, você pode escrever uma função genérica que será expandida para os tipos necessários em tempo de compilação. Por exemplo, uma função de modelo para obter o máximo de dois valores:
modelo <nome do tipo T>
T myMax(T x, Ty)
{
retorno (x > y)? x: y;
}
int main()
{
cout << myMax<int >(3, 7) << endl;
cout << myMax<duplo >(3,0, 7.0) << endl;
cout << myMax<char >('g', 'e') << endl;
retorno 0;
}