struct Edge;
struct Node {
int id;
vector<Edge> *edges;
};
struct Edge {
int id;
Node* vertex1;
Node* vertex2;
};
int main(){
vector<Edge> nodeEdgeList;
Node* nodePtr = new Node;
nodePtr->id = vertex;
nodePtr->edges = nodeEdgeList;
}
最後の行のために次のコンパイラエラーが発生します。ポインタを使って構造体のベクトルを指す方法は?
error: cannot convert 'std::vector<Edge, std::allocator<Edge> >' to 'std::vector<Edge, std::allocator<Edge> >*' in assignment
ジオメトリエンティティ階層を構築しようとしている場合は、重複したオブジェクトのリストへのポインタではなく、ポインタリスト(ベクトル EdgeList)を保持することをお勧めします。 –
Semih Ozmenに同意するならば、ここで意図しているのは少し奇妙で標準的なものではないので、Struct定義を変更することを検討すべきです。 – EdChum