Congratulations! You made it all the way through the primary portion of the tutorial! In the preceding lessons, we covered all the principal C++ language features (excluding those in the C++11 extension to the language).
So the obvious question is, “what next?”. One thing you’ve probably noticed is that an awful lot of programs use the same concepts over and over again: loops, strings, arrays, sorting, etc… You’ve probably also noticed that writing programs using non-class versions of containers and common algorithms are error-prone. The good news is that C++ comes with a library that is chock full of reusable classes for you to build programs out of. This library is called The C++ Standard Template Library (STL).
You’ve actually been using the STL since your very first program back in lesson 0.6, when you included iostream. iostream (and our friend cout) are part of the STL!
The Standard Template Library
The Standard Template Library is a collection of classes that provide templated containers, algorithms, and iterators. If you need a common class or algorithm, odds are the STL has it. The upside is that you can take advantage of these classes without having to write and debug the classes yourself, and the STL does a good job providing reasonably efficient versions of these classes. The downside is that the STL is complex, and can be a little intimidating since everything is templated.
Fortunately, you can bite off the STL in tiny pieces, using only what you need from it, and ignore the rest until you’re ready to tackle it.
In the next few lessons, we’ll take a high-level look at the types of containers, algorithms, and iterators that the STL provides. Then in subsequent lessons, we’ll dig into some of the specific classes.
|16.2 -- STL containers overview|
|15.7 -- Circular dependency issues with std::shared_ptr, and std::weak_ptr|