【发布时间】:2014-05-29 05:24:08
【问题描述】:
只是一个快速的 C++ 问题。我一直在尝试将向量内的节点保存到节点的右子节点。
例如,
我有一个名为 node 的结构,它有一个指向左孩子和右孩子的指针。 所以:
struct node{
node *left;
node *right;
};
我的节点向量,
vector<node> nodeVec;
也由节点组成。
目标是从我的向量中取出一个节点并保存为新节点的左右子节点。
所以:
node *tree = new node();
tree->left = *nodeVec.at(0);
tree->right = *nodeVec.at(1);
但它会抛出一个错误,指出它无法识别“*”运算符。只是尝试
tree->left = nodeVec.at(0)
它说我无法将节点转换为节点*。
但如果我使用,
tree->left = &nodeVec.at(0)
它成功地将地址保存在我的左孩子中。 我查看了几个网站和答案,我认为是在这里找到的,
Dereference vector pointer to access element,
可能是最相关的。我试了一下,出错了这么多,我不太明白。
简而言之,根据我的阅读,我需要取消引用向量内的节点。但如果它不接受 '*' 运算符,那该怎么做呢?
提前致谢!
【问题讨论】: