我正在使用k
之类的vector<int>tree[n+1]
来构建tree[parent].push_back(child)
数组树。我想在函数中传递此向量以执行各种任务。所以,请帮我怎么做?
我只想在求和函数中使用tree[NODE]
。
vector<int>tree[NODE];
for(i=1;i<n;i++)
{
cin>>u>>v;
tree[u].push_back(v);
}
int k= sum(v,1);
其中sum(1)是(不需要理解逻辑,我只想总和使用tree
的方式)
int sum(int node)
{
visited.push_back(node);
if(tree[node].size()==0)
return a[node];
int ans=a[node];
for(int i=0;i<tree[node].size();i++)
{
int next_node=tree[node][i];
ans+=sum(next_node);
}
return ans;
}
答案 0 :(得分:0)
我只想在求和函数中使用tree [NODE]
为什么不将其作为参数传递?您还需要以某种方式传递数组的大小。 有两种选择:
void sum(std::vector<int> tree[], size_t size)
{
}
// at call site
sum(tree, Node);
和
template <size_t Count>
void sum(std::vector<int> (&tree)[Count])
{
}
// at call site - will deduce array size automatically
sum(tree);