标准容器至少两个参数

一个是元素类型,一个是配置器类型。

当实例化一个 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了。

原文地址:https://www.cnblogs.com/charlesblc/p/6483576.html