[英]Defining the size of a vector inside a class in C++
我有一个名为“圆圈”的类,它由圆周上的点数定义。 反过来,每个点由其x和y值定义。 为了创建单个点,我有一个这样的类:
class Point{
public:
double x; // x position
double y; // y position
// Default constructor
Point()
: x(0.0),y(0.0){
}
};
这基本上创造了一个点。 我通过这个类从这些点创建“圆圈”:
class Circle{
public:
vector<Point> points; // points with x and y coordinates
// Default constructor
Circle()
: points(0.0) {
}
};
它将圆圈创建为点的组合。
圆圈的数量和每个圆圈上的相应点已经预先确定。 为了论证,让我们说每个都有M个圆圈和N个点。 所以我创建这样的实体:
vector<Circle> circles(M);
这就是我的问题开始的地方,因为我想预先确定每个“圆圈”对象的矢量“点”的大小,如:
vector<Point> points(N);
tl; dr如何在类中定义向量的大小? 无论我是否从班级内部做到这一点都无关紧要。 我想要的是能够确定每个“圆圈”对象的“点”向量的大小为N.
使用参数定义Circle类的构造函数
class Circle{
public:
vector<Point> points; // points with x and y coordinates
// Default constructor
Circle( size_t n ) : points( n )
{
}
};
然后声明Circle的向量
vector<Circle> circles( M, N );
如果你想要构造函数是明确的,例如
explicit Circle( size_t n ) : points( n )
{
}
那么你必须按以下方式定义矢量
vector<Circle> circles( M, Circle( N ) );
您也可以将构造函数设置为默认值
Circle( size_t n = 0 ) : points( n )
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.