[英]no matching function for call to ‘std::vector<node*>::push_back(Node*&)’
I am trying to push_back
a node pointer into a vector
, but I am getting an error, I don't know why.我正在尝试将节点指针
push_back
到vector
,但出现错误,我不知道为什么。
Here is my code:这是我的代码:
struct Node
{
int data;
struct Node *left, *right;
Node(int x){
int data = x;
left = right = NULL;
}
};
vector < struct node* > par,chi,val;
void travel(struct Node* root, struct Node* parent)
{
if(root == NULL)
return ;
travel(root-> left, root);
par.push_back(parent);
chi.push_back(root);
val.push_back(root->data);
travel(root-> right, root);
}
So far everything seems correct到目前为止一切似乎都是正确的
Once try to change一旦尝试改变
vector < struct node* > par,chi,val;
with和
vector < struct Node* > par,chi,val;
Your code is right but has two mistake.您的代码是正确的,但有两个错误。
Replace node*
with Node*
while declaring a Node*
type vector
.替换
node*
与Node*
而声明一个Node*
类型vector
。
vector < struct node* > par,chi,val;
should be replaced with vector < struct Node* > par,chi,val;
应替换为
vector < struct Node* > par,chi,val;
vector < struct Node* > par,chi,val;
There is another mistake.还有一个错误。
You declared val as a Node*
type vector.您将 val 声明为
Node*
类型向量。 But you are trying to push there an integer value.但是您正在尝试推送一个整数值。 I think it should be integer type vector.
我认为它应该是整数类型的向量。 Just declare
val
as int
type vector.只需将
val
声明为int
类型向量。
vector < struct Node* > par,chi;
vector < int > val;
Hope it should work.希望它应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.