我有一个这样的课程:
class Foo{
public:
Foo();
Foo(int, int, int)
~Foo();
private:
int a;
int b;
int c;
}
和int main函数,以及将我的元素(对象)保存在向量中:
int main()
{
vector <Foo*> foo; // <------this line
for(int i=0; i<=500; i++){
foo.push_back(new Foo(i+1,i+2; i+3)); //<------ this line
}
是否有更好的解决方案来替换上面的2行?
tnx all;
答案 0 :(得分:4)
你需要忘记你所写的Java事物&#34; new&#34;一直只是为了创造一个对象。
int main()
{
vector<Foo> foo;
for(int i=0; i<=500; i++)
foo.push_back(Foo(i+1, i+2, i+3));
}
或者,在C ++ 11中,
int main()
{
vector<Foo> foo;
for(int i=0; i<=500; i++)
foo.emplace_back(i+1, i+2, i+3);
}