私はベクトルを返す関数myfun
を持っています。ベクトルを返すループ内の関数を使用する
vector<double> myfun(const size_t k, const size_t i){
vector<double> v(k);
// do some computation with remaining arguments
return v;
}
その後、私はv
を更新するために、ループ内でそれを使用して、いくつかの結果を得るためにv
を使用します。
int main(){
size_t N = 100; // iteration size
size_t n = 10; // size of v
vector<double> result(N);
vector<double> v(n);
for(size_t i = 0; i<N; i++){
v = myfun(n,i); // compute for each iteration
result[i] = compute_some_value(v);
}
}
だから、私の質問は:
v
は、実際にmyfun
の内側に、それが呼び出されるたびに割り当てられていますか?- もしそうなら、古い
v
はどうなりますか? - 出力引数
v
にはvoid myfun(some_args, vector<double> &v)
のようなアドレスを使用する方が良いでしょうか?