用c++编写一个通用堆栈类
writing a generic stack class in c++
嗨,我不确定我的代码是否不正确,我在搜索中可以找到任何东西。
问题是:
用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’
当您将Node
与std::stack
:一起使用时,至少您应该实例化它
template <typename T>
class Stack : public std::stack<Node<T> >
// ^^^
{
];
相关文章:
- 在使用堆栈为下一个最大数字编写代码时面临 SIGSEGV(分段错误)
- 使用一个内存集数组和单个堆栈在 O(n) 中查找数组的下一个更大元素
- 使用 STL 交换堆栈 C++ 中的第一个和最后一个元素
- 使用堆栈查找每个元素的下一个更大的元素
- 如何在 C++03 中没有重复代码的情况下在堆栈上创建一个非常量 C 字符串数组?
- 作者在解释C 中的堆栈和堆时犯了一个错误,或者我正在误读某些内容
- 我如何转换一个基于动态的,基于指针的int堆栈,以便将其打印成字符串
- 从一个堆栈移动到另一个堆
- 我认为我有一个堆栈溢出(已达到 SDL 表面限制)
- C++11 Lambda闭包通过引用涉及一个堆栈变量,该变量离开作用域是允许的,但得到了未定义的行为
- 如何调用在另一个堆栈流中创建的函子对象
- 编写一个函数,返回一个堆栈,该堆栈包含所有小于给定数字的元素,并且顺序相同
- 将一个堆栈的值分配给另一个堆栈
- 如何将内容从一个堆栈移动到另一个堆栈
- 我怎么能得到一个堆栈溢出在c++和Unix
- 试图在c++中实现一个堆栈模板(失败得很惨)
- 在我的代码中,scoped_ptr指向一个堆栈变量 - 这是否延长了堆栈变量的生命周期
- 如何反转一个堆栈
- 试图写一个c++堆栈程序
- 通过使用另一个堆栈查找堆栈中的最大值