Want a mechanism that allows iteration over containers of values without exposing inner working.
Can be performed using an iterator. In C++ can be made to look like a pointer.
list::iterator start = aList.begin(); list ::iterator end = aList.end(); for ( ; start != end; ++start) cout << (*start) << endl;