C :创建类对象的向量
C++: Creating a vector of class objects
我有一个关于创建类对象向量的特定问题。最近从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 。解决了这个问题。
您正在寻找所谓的vector
。vector
类似于Array
,但可以在运行时间更改其大小。
std::vector<Foo> v { Foo("A"),Foo("B"),Foo("C") };
然后,您可以通过执行v[0]
访问对象。如果您想在初始化后将另一个对象添加到vector
,则进行v.push_back(Foo("D"))
我认为可以通过简单地将STL矢量用于您的课程来解决问题。请参阅此代码:
#include <iostream>
#include <vector>
using namespace std;
class Rectangle{
int length;
int width;
public:
Rectangle(int length, int width){
this->length = length;
this->width = width;
}
int area(){
return this->width * this->length;
}
};
int main() {
vector<Rectangle> v;
v.push_back(Rectangle(1,2));
v.push_back(Rectangle(3,4));
cout << v[0].area()<<endl;
cout << v[1].area()<<endl;
// your code goes here
return 0;
}
使用stl vector库来实现这一目标。
std::vector<Foo> vectorOfObjects;
Foo newObject("A");
vectorOfObjects.push_back(newObject)
vectorOfObjects[0].doSomething();
相关文章:
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 迭代时从向量和内存中删除对象
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 如何创建从同一类继承的不同对象的向量
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 从多个源构造一个对象,包括一个对象向量
- 在C 中,是否有可能在不兼容类型的std ::向量对象之间传输不同类型的缓冲区
- 将向量对象存储在共享指针投掷错误中
- E0312,C2664尝试将向量对象作为函数参数传递时错误
- 相对于向量对象的两个成员,找到两个向量的相交的有效方法
- 将数据从文件读取到向量对象
- C 向量对象访问
- 向量对象声明后的括号是什么意思
- 2向量对象指向相同的分配内存
- 如何返回向量对象
- 传递单个或向量对象时没有重载函数的实例
- 指向数组和向量对象的指针
- 向量对象库,可以存储其他对象类型的对象
- 如何从另一个向量/对象集构造新的向量/指针集