c++ - 如何在 C++ 中定义、初始化和使用 vector< vector < pair < int,int > , int >> v?

标签 c++ recursion vector

<分区>

final_result 会保存递归函数调用的一系列所有结果吗?我遇到段错误,但可以编译。 我很确定这行不通。但是,如果我需要将所有结果存储在一个数据结构中,我该怎么做呢?

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;

最佳答案

为什么不让您的生活更轻松,而只是将您正在累积的对象作为引用参数传递:

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);
}

关于c++ - 如何在 C++ 中定义、初始化和使用 vector< vector < pair < int,int > , int >> v?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37233982/

相关文章:

c++通过一个函数修改多个数组

c++ - 在 C 中存储对 Lua 值的引用,如何实现?

javascript - 如何解决可视化算法的问题

Java递归电话号码字母

c++ - 带碰撞的 N 体模拟

Java Vector 在删除时不重新排序索引,但将它们保留为空,在添加命令上重用这些空格

c++ - 没有中间对象的操作分配

haskell - Haskell 中的 Y 组合器、无限类型和匿名递归

c++ - 如何获得指向 std::vector 中第一个元素的指针?

c++ - 将数据包附加到当前 PCAP 文件