Introduction
In the previous chapters of this course, we gave examples and offered exercises that did not utilize the C++ standard library. This can lead to a lot of code to often do very little. We stuck with raw arrays to help with understanding the fundamentals of the language; however, in this chapter, we will cover powerful features that will allow you to write complex behavior and functionality with a surprisingly small amount of code. C++ really becomes a joy to work with once you introduce the standard library into your projects and, handily, it is provided with any C++ compiler. We can do away with using raw arrays and writing our own queues and stacks and, instead, use pre-existing implementations, all with a common interface. To begin our journey, we will start by explaining what a container is and discussing their different types, before moving onto iterators and how they can make using these containers very natural and efficient.