Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 你能帮我理解这个C++;模板代码?_C++_Templates - Fatal编程技术网

C++ 你能帮我理解这个C++;模板代码?

C++ 你能帮我理解这个C++;模板代码?,c++,templates,C++,Templates,嗨 谁能告诉我这东西是怎么工作的吗 template <typename T, template <typename ELEM> class CONT = std::deque > class Stack { private: CONT<T> elems; // elements public: void push(T const&); // push element void pop(); // pop element T top() const;

谁能告诉我这东西是怎么工作的吗

template <typename T,
template <typename ELEM> class CONT = std::deque >
class Stack {
private:
CONT<T> elems; // elements

public:
void push(T const&); // push element
void pop(); // pop element
T top() const; // return top element
bool empty() const { // return whether the stack is empty
return elems.empty();
}
};
模板
类堆栈{
私人:
CONT elems;//元素
公众:
void push(T const&);//push元素
void pop();//pop元素
T top()const;//返回top元素
bool empty()常量{//返回堆栈是否为空
返回elems.empty();
}
};
我不明白的是: 模板类V或说“模板类CONT=std::deque”

我把这想象成

template <class>
class CONT = std::deque // here CONT is templatized class declaration.
模板
class CONT=std::deque//这里CONT是模板化的类声明。
但困扰我的是,我们如何才能将某些东西分配给类名CONT,而不是编写它的定义(我到目前为止都是这么做的):

模板
类CONT{
//def
}
还有一件事:

template <class> // why its only class written in angle bracket there should be also be name
like : template<class ty>
template//为什么它唯一一个用尖括号写的类也应该是name
比如:模板

非常感谢,非常感谢您的帮助)

这不是对象分配。它只是模板说明符中的语法,用于指定如果未提供默认类型参数,则默认类型参数应该是什么。这不是那种类型的定义

我不明白的是:模板类V

你的问题中没有这样一句话,所以我没办法

template< template <typename ELEM> class CONT = std::deque >
class Stack
然而
ELEM
ALLOC
实际上并没有命名任何东西;它们的存在只是为了澄清所需模板的参数列表是什么。因此,您可以省略它们:

template< template <typename, typename> class CONT = std::deque >
class Stack
template