我实现了自己的一组用于表示图形的类。我是C ++的新手,所以我在使用指针时遇到了一些麻烦。你看,这是我原来的代码:
class Vertex {
public:
int label;
Vertex adjacent_vertices[];
Vertex(int l) : label(l) { }
Vertex(int l, Vertex adjacents[]) : label(l), adjacent_vertices(adjacents) { }
};
然后我得到一个不完整的类型错误。根据我的研究,我显然需要使用adjacent_vertices
的指针列表。 Vertex* adjacent_vertices[];
但是第二个构造函数存在问题。这些都不起作用:
adjacent_vertices(*adjacents)
adjacent_vertices(adjacents*)
adjacent_vertices(&adjacents)
有没有更好的方法来实现这个?我觉得我在这里缺少一些非常明显的东西,作为Java / Python开发人员以前从未使用过指针。
答案 0 :(得分:1)
一个简单的解决方案是使用矢量作为您的adjacent_vertices。
class Vertex {
public:
int label;
vector<Vertex> adjacent_vertices;
Vertex(int l) : label(l) { }
Vertex(int l, vector<Vertex> adjacents) : label(l), adjacent_vertices(adjacents) { }
};