假设我有一些二进制搜索树,它可以工作并声明两个:
BinaryTree<string, queue<int> > * tree1 = new BinaryTree<string, queue<int>>;
BinaryTree<string, int> * tree2 = new BinaryTree<string, int >;
让我们说第二个完美无缺:
tree2->Add("Yoyo", 10);
如何将值添加到具有第二个参数作为队列的值?
由于通常需要声明某些类型的对象添加到队列中,所以我在这个意义上该怎么做?
答案 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"