2017-07-07 16 views
2

データ型がvector<vector<double>> Xの場合、Xの特定の条件が満たされるまで、または同じデータ型を返す関数myFunction(vector<vector<double>> &X)を反復して実行する必要がある一般的な疑似コード型を探していますn回目の繰り返し。だから、C++のデータに関数を繰り返し適用するにはどうすればよいですか?

、その後、一定の条件が

myCondition(X(k)) = trueまたはn番目まで言われるまで、

X(3) = myFunction(X(2))、およびrepreatを得るために、再びそれを養う、

X(2) = myFunction(X(1))を取得するために、もう一度それを養う、X(1) = myFunction(X)せたとし反復が行われ、X(n)で停止する

どのように実装できますか?

std::vector<std::vector<double>> x; 
unsigned int numIterators = 100u; // for example 
do 
{ 
    x = myFunction(x); 
} while(!Condition(x) && --numIterators) 

そしてbool Condition(const std::vector<std::vector<double>>&)チェックあなたはループを停止する条件:

+2

何?あなたの試みはどのように働いたのですか?あなたがまだそれをやっていないなら、[SOツアーをする](http://stackoverflow.com/tour)と[良い質問をする方法を読む](http:// stackoverflow。 co.jp/help/how-to-ask)をご覧ください。最後に、[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)の作成方法を学んでください。 –

答えて

3

では、次のようなものを試してみました。あなたはこのような何かがあり

0

:主な機能から

typedef vector<vector<double>> datatype; 
datatype myFunction(datatype X ,int iteration ,int n){ 
    if(iteration== n) return X; 
    /// do some operations with X 
    myFunction(X , iteration+1 ,n); 
} 

を、あなたは次のように呼び出すことができます:あなたは自分自身を試してみました

// define vector X and no of iterations- n. 
    datatype ans=myFunction(X,0,n);