Generic representational abstractions are mappings from one structural
abstraction to another. Called adaptors in STL, these abstractions are
casting wrappers that change the appearance of a container (building a
stack from a list), or an iterator (converting a bidirectional
iterator to a reverse iterator). STL also has adaptors to convert C++
I/O streams and arrays to STL-style containers.