The Standard Template Library for C++. It’s an evolving standard containing the result of many years research into generic programming.
So making use of compile time polymorphism rather than the run time polymorphism we saw in object oriented programming.
It’s used to provide reusable and widely adaptable solutions, that are never-the-less efficient.
STL contains various building blocks.
In object oriented programming we attempt to tightly bind data and the operations on the data.
Potentially the data structure implies the algorithms used on it.
In generic programming we attempt to decouple the data and the operations on them. We put the data into containers and use the iterators as an interface to use standard algorithms on data.
The container vector is a critical part of modern C++, and is part of STL.
STL contains six major kinds of components, implemented using templates:
Containers.
Iterators.
Generic algorithms.
Function objects.
Adaptors.
Allocators.