指针传染媒介,指向在对象传染媒介的对象。怎么做?

时间:2011-11-01 20:38:50

标签: c++ pointers vector

我这里有一个C ++问题。

我有三个类:Graph,Nodes和Edges,用于建模一个简单的Graph。 现在,Graph类的一个对象有一个带有Node类对象的向量和一个带有Edge类对象的向量。

Node类的对象必须知道所有传入和传出边缘。边类的一个对象必须知道它来自哪个节点以及它到达哪个节点。 现在我有以下问题:图中的所有边都存储在边类中的向量中。节点类的对象也必须知道一些边缘,所以我给它们一个指针向量指向图形向量中的所有边缘。但我现在的问题是:如果我从图形的向量中删除一条边,则指针是错误的。

我不想将eache边缘复制到两个向量中,所以我认为我必须这样做,但我真的看到了从向量中删除某些内容的问题。

是否有解决方案或我是否必须复制每个边缘? 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

我会使用描述符或只是对所有容器使用shared_ptr。

描述符是Boost图库中的首选武器