Containers and algorithms have been a fundamental part of C++ for a long time. Containers have included sequences (e.g., vector), associative containers (e.g., map), and, since C++ 11, unordered associative containers (e.g., unordered_map). The containers manage the storage for their elements. The separation of data structures and algorithms offers great flexibility, allowing one algorithm to be applied to various containers. The addition of ranges to the core language provides simplified ways to access and manipulate containers. To explore these features, in this chapter, we are going to construct Pascal’s triangle, which is made by adding up adjacent numbers from the preceding row, starting with a single 1 in the first row. The entries can be used to count the number of event combinations and more. We will use vectors to store the values, starting with the first row, to practice using a vector and writing out to the screen. We’ll then generate and display more rows, learning how to use vectors differently. Finally, we’ll discuss some of the triangle’s properties. This will help us think about testing our code later.