In the previous chapter, we implemented several generic algorithms that operated on containers, but in an inefficient manner. In this chapter, you'll learn:
- How and why C++ generalizes the idea of pointers to create the iterator concept
- The importance of ranges in C++, and the standard way to express a half-open range as a pair of iterators
- How to write your own rock-solid, const-correct iterator types
- How to write generic algorithms that operate on iterator pairs
- The standard iterator hierarchy and its algorithmic importance