标准容器至少两个参数
一个是元素类型,一个是配置器类型。
当实例化一个 vector<int>这样的标准容器的时候,得到的其实是
vector<int, std::allocator<int>>。
但是后一个参数可以有缺省值,如下:
template <typename T, class Cont=Deque<T> >
class Stack {
};
然后Stack的初始化可以有:
std::stack<int> first;
std::stack<int,std::vector<int> > third;
但是有时候,想要换容器,又不想弄错类型,可以有(貌似STL没有支持):
template <typename T, template<typename>class Cont >
class Stack;
其中typename后面省略了名称
然后就可以
stack<int, vector> my_stack了。