2016-05-15 20 views
1

final_resultは再帰関数呼び出しの一連の結果を保持しますか?私はseg欠点を得るが、それはコンパイルする。 私はこれがうまくいかないと確信しています。しかし、すべての結果をデータ構造に格納する必要がある場合は、どうすればよいでしょうか?定義、初期化、および使用方法 - ベクトル<ベクトル<ペア< int,int >、int>> v 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); 
} 
関連する問題