The STL is a powerful collection of algorithms and containers. Although understanding and implementing data structures is a great skill for programmers, you don't have to implement them each time you need one in the project. The library providers take care of implementing stable and tested data structures and algorithms for us. By understanding the inner details of data structures and algorithms, we are making better choices of STL containers and algorithms while solving problems.
The vectors and linked lists discussed previously are implemented in the STL as std::vector<T> and std::list<T>, where T is the type of each element of the collection. Besides the type, containers also take a second default template parameter as an allocator. The std::vector, for example, is declared as follows:
template <typename T, typename Allocator = std::allocator...