您好我不确定我的代码是否不正确我一直在搜索可以找到任何内容。
这是一个问题:
在Java或C ++中为使用链表的堆栈类型编写一个名为Stack的泛型类 存储元素。 Stack类有一个名为head的成员变量,它引用了 列表的第一个节点,以及一个名为size的成员变量,用于存储元素的数量 在堆栈上。 Stack类提供了STL堆栈类的所有方法,包括 推,弹出,顶部和空。
他们给出节点类
template <typename T>
class Node {
public:
T nodeValue;
Node<T> *next;
Node (const T& item, Node<T> *ptr = NULL):
nodeValue(item), next(ptr)
{}
};
现在这是我写的Stack类:
template <typename T>
class Stack:public std::stack<Node>
{
public:
Node<T> *head;
T size;
Stack(const T& capacity, Node<T> *ptr):size(capacity),head(ptr){};
};
当我运行它时我得到了这个:
error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Sequence> class std::stack’
答案 0 :(得分:1)
当您将Node
与std::stack
一起使用时,至少应该实例化template <typename T>
class Stack : public std::stack<Node<T> >
// ^^^
{
];
:
{{1}}