J'ai une fonction myfun
qui va retourner un vecteur.utiliser la fonction à l'intérieur de la boucle qui renvoie le vecteur
vector<double> myfun(const size_t k, const size_t i){
vector<double> v(k);
// do some computation with remaining arguments
return v;
}
Ensuite, je vais l'utiliser dans la boucle pour mettre à jour v
et utiliser v
pour obtenir un résultat.
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);
}
}
Alors, ma question est:
- Est-ce que
v
effectivement alloué à l'intérieur demyfun
chaque fois qu'il est appelé? - Si c'est le cas, que devient le
v
? - Aussi, est-il préférable d'utiliser juste utiliser l'adresse comme
void myfun(some_args, vector<double> &v)
pour l'argument de sortiev
?