The Standard Template Library (STL) is a collection of generic algorithms and containers. It provides a new approach in software development, namely, generic programming. How does generic programming differ from traditional object-oriented programming?
Traditional object-oriented programming is based on data hiding, whereas generic programming is based on data independence. C++ has two unique features that enable data independence: templates and operator overloading. A combination of these features allows a generic algorithm to assume very little about the actual object to which it is applied. Consequently, such an algorithm is not confined to a specific data type. This type-independence increases its potential of reusability.