请原谅我的菜鸟问题..
我有 :
class A;
{
public:
A(int i) : m_i(i) {}
int m_i;
}
A newA(i);
{
return A(i);
}
我想填充以下向量,但使用一个循环,其中一个对象 A 是用一个函数(newA)创建的:
vector<A*> list;
for (int i=0 ; i<3; ++i) { A a = newA(i); list.push_back(&a); }
如果我使用 avector<A>
但不使用 a,那会起作用,vector<A*>
因为我所做的只是更改 &a 处的值并将相同的指针 &a 推 3 次。
我怎样才能做到每次都创建一个新的 A ,而不是更改同一个指针的值。
我想出了以下方法,但我希望这不是唯一的方法,因为它包括动态分配..
A newA(i);
{
return A(i);
}
vector<A*> list;
for (int i=0 ; i<3; ++i)
{
A a = newA(i);
list.push_back(new A(a));
}
请注意,A 类实际上在内存中很大,因此有指针。