包含相邻顶点列表的自定义顶点类型[图形]:不完整类型错误

时间:2016-05-07 23:22:51

标签: c++ graph

我实现了自己的一组用于表示图形的类。我是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开发人员以前从未使用过指针。

1 个答案:

答案 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) { }
};