La Standard Template Library (STL) es una biblioteca de software para el lenguaje de programación C++ que ha influido en varias partes de la biblioteca estándar de C++. Esta provee de cuatro componentes denominados algoritmos, contenedores, iteradores y funciones.[1]
La STL proporciona un conjunto prefabricado de las clases comunes de C++, tales como contenedores y arrays asociativos, que se pueden utilizar con cualquier tipo incorporado y con cualquier tipo definido por el usuario que admita algunas operaciones elementales (como la copia y la asignación). Los algoritmos STL son independientes de los contenedores, lo que reduce significativamente la complejidad de la librería.
La STL logra sus resultados mediante el uso de plantillas. Este enfoque proporciona polimorfismo en tiempo de compilación que a menudo es más eficiente que el tradicional polimorfismo en tiempo de ejecución. Los compiladores C++ modernos están perfeccionados para minimizar cualquier penalización de abstracción derivada de un uso intensivo de la STL.
La STL se creó como la primera biblioteca de algoritmos genéricos y estructuras de datos para C++, con cuatro ideas en mente: programación genérica, abstracción sin pérdida de eficiencia, la arquitectura de Von Neuman,[2] y la semántica de valor.