The C++ Standard Template Library (STL) consists of three main components: containers, algorithms, and iterators. Containers provide data structures for storing collections of data, algorithms provide functions for operating on containers, and iterators facilitate the use of containers with algorithms. STL was adopted as part of the ISO C++ standard in 1994. STL offers containers like vectors and maps, publicizes complexity guarantees, and provides built-in algorithms for processing containers in an extensible way. The C++ standard library also provides a string class for representing strings.