当队列在模板中时将事物放入队列?

时间:2015-05-23 16:50:56

标签: c++ binary-search-tree

假设我有一些二进制搜索树,它可以工作并声明两个:

BinaryTree<string, queue<int> > * tree1 = new BinaryTree<string, queue<int>>;
BinaryTree<string, int> * tree2 = new BinaryTree<string, int >; 

让我们说第二个完美无缺:

tree2->Add("Yoyo", 10); 

如何将值添加到具有第二个参数作为队列的值?

由于通常需要声明某些类型的对象添加到队列中,所以我在这个意义上该怎么做?

1 个答案:

答案 0 :(得分:0)

假设您的BinaryTree类声明为

template <typename T, typename U>
class BinaryTree 
...
    Add(T, U);

我猜你只能添加一个预构建的队列

BinaryTree<string, queue<int>> tree;
tree.Add("foo", queue<int>());
// or
queue<int> q;
q.push_back(1);
...
tree.add("bar", q);

要在添加队列后修改队列,您需要一种访问方法

template <typename T, typename U>
class BinaryTree 
...
    Add(T, U);
    U& Get(T);

用作

BinaryTree<string, queue<int>> tree;
tree.Add("foo", queue<int>());
tree.Get("foo").push_back(1); // Modifies queue at "foo"