在c++类内部初始化另一个类



我正在尝试创建一个新的节点类,并在我的类Colony中设置其坐标(我的运行函数在Colony类内部)。但这是分段式的。我试过用new,但它不起作用。这里的解决方法是什么?下面是一段代码:

class Node {
public:
std::vector<double> coords;
vector<Node> parent;
vector<Node> childList;
vector<Attract> closestAtts;
};
class Colony {
public:
double D, dk, di;
vector<Attract> attlist;
vector<Node> nodelist;
std::vector<vector<double> > attractors;
std::vector<vector<double> > centroids;
void run() {
// Initializes a colony with starting point
Node start; 
start.coords[0] = 100.0; 
start.coords[1] = 100.0; 
start.coords[2] = 100.0; 
nodelist.push_back(start);
}

在您的run()方法中,您试图分配start.coords向量的第0,第1和第2个元素,但这些尚未分配。相反,你应该.push_back这些值,像这样:

void run() {
// Initializes a colony with starting point
Node start; 
start.coords.push_back(100.0); 
start.coords.push_back(100.0); 
start.coords.push_back(100.0); 
nodelist.push_back(start);
}

相关内容

最新更新