语法问题:尝试将节点推送到队列

时间:2014-12-03 07:42:49

标签: c++ templates queue push binary-search-tree

我有一个由两个参数组成的二叉搜索树。我需要实现树中所有内容的广度优先列表,虽然我认为我理解我需要编写的内容,但我在语法方面遇到了一些麻烦。

#include <queue>

template <class T> class Node {};

template <class T> class Tree 
{
  Node<T> *root;

  void foo()
  {
    std::queue<Node<T> > myqueue;
    myqueue.push(root<T>); // error here
  }
};

1 个答案:

答案 0 :(得分:0)

在您的代码中,成员root的类型为Node<T> *。但您的队列myqueue包含Node<T>类型的元素。试试这个:

std::queue<Node<T> *> myqueue;     // note the different type here
myqueue.push(root);