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

Syntax Issue: Trying to Push Node onto Queue

本文关键字:队列 节点 问题 语法      更新时间:2023-10-16

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

#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
  }
};

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

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