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