【发布时间】:2014-01-16 10:01:37
【问题描述】:
我正在实现一个红黑树,其中插入函数应该有两个模板,一个用于项目,另一个用于键。我以这种方式在插入函数中传递参数:
template <class Item, class Key>
void RedBlackTreeNode<Item, Key>::InsertKey(const Item *&T, const Key *&z)
我尝试在第二个参数中传递一个数组(由随机元素组成),这样:
const int* pointer = &arr[i];
t1.InsertKey(//something else here// , pointer); //insert the tree and the node
但是,我不知道要传递什么作为第一个参数才能在红黑树中插入元素。第一个参数代表什么?我试图通过这种方式传递树的根:
Node<int, int> n1;
t1.InsertKey(n1->root, pointer);
很遗憾,这不起作用。有什么帮助吗?
提前致谢。
【问题讨论】:
-
您遇到了什么错误?
-
如果您正在实现一个字典(也称为关联数组或映射),那么 Item 可能是映射中存储的值的类型。
-
我收到三个错误:无效参数候选者是:void InsertKey(const int * &, const int * &),无法解析字段 'root' 并且 '->' 的基本操作数有非指针类型 'Node
' -
你为什么在这里使用指针?
-
我不知道如何实现红黑树的另一种方法,并且我有使用两个模板的限制。