Disons que j'ai une classe FOO. Je veux un std::vector
de FOO.Laquelle de ces pratiques est la meilleure?
Est-il mieux si je fais quelque chose comme ceci:
FOO foo;
foo.init();
foo.prop = 1;
std::vector<FOO> myvec;
myvec.push_back(foo);
foo.prop = 2;
myvect.push_back(foo);
ou est-il une meilleure pratique de le faire:
std::vector<FOO> myvec;
FOO foo;
myvec.push_back(foo);
myvec.back().init();
myvec.back().prop = 1;
myvec.push_back(foo);
myvec.back().init();
myvec.back().prop = 2;
Je suis fondamentalement pas sûr de son mieux pour faire un modèle et pousser le modèle au lieu de faire une instance, le pousser, puis le modifier à partir du vecteur. Aussi, lequel est le plus sûr et le moins susceptible de provoquer des fuites de mémoire?
Merci
Pourquoi Foo :: Foo() n'invoque pas Foo :: init()? Cela peut être utile si vous postez une classe Foo concrète. –
Les fuites de mémoire ne se produiront pas à moins que vous n'utilisiez de nouveau sans supprimer. –