【发布时间】:2016-01-29 07:24:58
【问题描述】:
我有这样的课:
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 全部;
【问题讨论】:
-
你为什么在向量中使用指针?
-
只需使用
std::vector<Foo>。谁告诉你需要指针的? -
如果可能的话,我会避免使用指针,而是使用简单的对象。拥有一个动态分配对象的向量闻起来很像内存泄漏,因为忘记释放是很常见的。至少使用智能指针
-
@πάνταῥεῖ 和 BoBTFish 和 Sossenbinder 我更喜欢在堆中创建我的对象。我在 statck 内存中使用我的对象的 500 个或更多对象是这样吗??
-
@mehdi
std::vector无论如何都会将对象放在“堆”中。
标签: c++ class pointers object vector