假设我有一个FOO类.
我想要一个std::vectorFOO.
如果我做这样的事情会更好:
FOO foo;
foo.init();
foo.prop = 1;
std::vector<FOO> myvec;
myvec.push_back(foo);
foo.prop = 2;
myvect.push_back(foo);
Run Code Online (Sandbox Code Playgroud)
或者更好的做法是:
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;
Run Code Online (Sandbox Code Playgroud)
我基本上不确定是否更好地制作模型并推入模型而不是制作实例,推送它,然后从矢量中修改它.另外,哪一个更安全,最不可能导致内存泄漏?
谢谢
在处理值时,这两种方法都没有任何内存问题,也没有手动动态分配任何对象.
我倾向于给出FOO一个构造函数,它可以执行任何init操作并设置prop为适当的值.然后你可以推送你想要的值:
myvec.push_back(FOO(1));
myvec.push_back(FOO(2));
Run Code Online (Sandbox Code Playgroud)