C ++:创建类对象的向量

时间:2017-03-12 18:17:07

标签: c++ class object vector

我有一个关于创建类对象向量的特定问题。最近从Java过渡后,我对这个话题仍然很模糊。

假设我有class Foo {...}

Foo::Foo (string test) {
    string str = test;
}

我想创建一个类Foo的不同对象的向量。这是可能的,如果是这样,有什么简单的方法呢? (在C ++中)

我在考虑这样的事情:

vector<Foo> list;
for (int i = 1;i<10;i++) {
    Foo temp("test")
    list.push_back(temp);
}

但问题是我想创建类的不同的实例,而不是让它们引用同一个对象。

感谢任何帮助。谢谢!

编辑:感谢您的帮助和善意的评论。我意识到显而易见的解决方案(你们提出的那个)在我的程序中不起作用,因为我没有切换到新版本的C ++。这个问题已经解决了。

3 个答案:

答案 0 :(得分:1)

您正在寻找所谓的vectorvectorArray类似,但允许在运行时更改其大小。

std::vector<Foo> v { Foo("A"),Foo("B"),Foo("C") };

然后您可以通过执行v[0]来访问对象。如果您想在初始化后向vector添加另一个对象,则执行v.push_back(Foo("D"))

答案 1 :(得分:1)

我认为只需在课堂上使用STL矢量即可解决问题。 请参阅此代码:

jar

答案 2 :(得分:-1)

使用STL矢量库来实现此目的。

std::vector<Foo> vectorOfObjects;

Foo newObject("A");
vectorOfObjects.push_back(newObject)
vectorOfObjects[0].doSomething();