The C++ STL(Standard Template Library) is a carefully constructed library developed by Alexander Stepanov, Meng Lee and others at Hwelett Packard.

The core of STL include container which represent data structure and algorithm which apply on the data structure and iterator which is the bridge between container and algorightm.

Because the STL make heavy use of the template mechanism for parameterizing components, it becomes a universally usable and extensible framework.

Even the feature of C++ is OOP, but STL especially emphasize on generic programming. For example, the simple algorithm "find", in STL you can write find once and apply it on any container and any data types, no matter its a vector, list or stack, queue.

When you write STL code , you are actually instantiating the template class or function in the library. You are writing the code that generate code! The generated code are different depend on the type you used to instantiate the template. This is also called "meta programming".