2016-05-15 138 views
1

final_result是否会保存一系列来自递归函数调用的结果?我得到seg故障,但它编译。 我很确定这不起作用。但是,如果我需要将所有结果存储在数据结构中,我该怎么做?如何定义,初始化和使用 - vector <vector <pair < int,int >,int>> v in C++?

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; 
+3

号的最后一条语句的意思是将指向函数的指针赋给'final_result'并且会发出编译错误。 – MikeCAT

+0

请发布编译的实际C++代码。这是不可能的,因为代码无法工作。 – xaxxon

回答

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); 
} 
相关问题