Let’s pick up the
Stack template we considered in Specializing for Type Information [52, 183]. We decided to implement it with a standard
deque, which is a pretty good compromise choice of implementation, though in many circumstances a different container would be more efficient or appropriate. We can address this problem by adding an additional template parameter to
Stack for the container type used in its implementation.
template <typename T, class Cont>class Stack;
For simplicity, let’s abandon the standard library (not usually a good idea, by the way) and assume we have available a set of nonstandard container templates:
List, Vector, Deque, and perhaps others. Let’s also assume these containers are ...