我有一个关于创建类对象向量的特定问题。最近从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 ++。这个问题已经解决了。
答案 0 :(得分:1)
您正在寻找所谓的vector
。 vector
与Array
类似,但允许在运行时更改其大小。
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();