Intro to STL (cont.) ——————— There are three main components of the STL that we will discuss throughout the semester: containers itertators algorithms Containers hold the data we are interested in, and have slightly different flavors Iterators are basically pointers to data held in containers. They are powerful in that they facilitate looping and advanced, generic algorithms on containers. This can (and often) reduces a lot of lines of code into a statement or two using these pointer-like properties. The algorithms available via the STL are common ones you may think of like random_shuffle to shuffle a collection of items or sort to sort them. To enable these algorithms to work on all STL containers, they use iterators to process data instead of the class internals. There are about 70 algorithms available. Containers --------- There are three types of containers: sequence containers, associative containers and container adaptors. Iterators are only available for sequence containers and associative containers. Sequence containers are similar to arrays in that they are often indexed linearly Associative containers are indexed by key/value pairs, and therefore are non-linear Container adaptors implement basic data structures using a sequence container at its core