In the previous Exploration, you got to see how range adaptors and ranged algorithms work. Most ranged algorithms, such as sort(), are likely implemented on top of iterator-based algorithms. Even when working with ranges, you still need to use iterators such as ostream_iterator. And sometimes, iterators are easier to use than ranges, such as initializing a vector. This Exploration visits the iterators and algorithms that offer an alternative to ranges.
Transforming Data
Several programs that you’ve read and written have a common theme: copying a sequence of data, such as a vector or string, and applying ...