如何定义,初始化和使用 - vector<矢量<对< int,int> ,int> >用c ++编写?

时间:2016-05-15 02:39:27

标签: c++ recursion vector

final_result会从递归函数调用中获取一系列所有结果吗?我得到seg故障,但它编译。 我很确定这不会起作用。但是,如果我需要将所有结果存储在数据结构中,我该怎么做?

vector< vector < pair < int,int> > > result;

vector< vector < pair < int,int> > > recursive_function()
{
  if(condition_met)  //never met on first call
  {
    result.push_back(a);  //a is a vector< pair < int,int> >
    return result;
  }
  else
  {
    return result;
  }
  //does something 
  recursive_function();
  recursive_function();
}

vector< vector < pair < int,int> > > final_result;
final_result = recursive_function;

1 个答案:

答案 0 :(得分:1)

为什么不让您的生活更轻松,只需将您积累的结果作为参考参数传递给对象:

void recursive_function(vector<vector<pair<int, int>>> & result) {
    result.emplace_back();
    if (rand() % 2)
        recursive_function(result);
}

int main() {
    vector<vector<pair<int, int>>> result;
    recursive_function(result);
}