我想做类似的事情:
class Circle {
int radius;
public:
Circle( int r ) : radius(r) {}
}
vector<Circle> circlesVector;
for (int i = 0; i < 10; i++) {
Circle circle(i);
circlesVector.push_back(circle);
}
但这似乎并没有达到我想要的方式。该 vector 尝试使用Circle(Circle&)的构造函数或一些我不理解或期望的行为来创建Circle对象。
最佳答案
您发布的代码从根本上来说还不错,除了一些错别字和缺失的代码。您可以看到this working demo。
但是您不需要创建临时的Circle
对象。你可以这样做:
for (int i = 0; i < 10; i++) {
circlesVector.push_back(i);
}
因为
Circle
可从int
隐式构造。请注意,您还可以使用初始化列表:
vector<Circle> circlesVector{0,1,2,3,4,5,6,7,8,9};
或者,使用
emplace_back
:circlesVector.emplace_back(i);
关于c++ - 如何构造具有构造函数参数的对象的 vector ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21393484/