如何将vector <int> v [n]作为函数的性能指标传递?

时间:2019-04-11 05:11:42

标签: c++

我正在使用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;

}

1 个答案:

答案 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);