我这里有一个C ++问题。
我有三个类:Graph,Nodes和Edges,用于建模一个简单的Graph。 现在,Graph类的一个对象有一个带有Node类对象的向量和一个带有Edge类对象的向量。
Node类的对象必须知道所有传入和传出边缘。边类的一个对象必须知道它来自哪个节点以及它到达哪个节点。 现在我有以下问题:图中的所有边都存储在边类中的向量中。节点类的对象也必须知道一些边缘,所以我给它们一个指针向量指向图形向量中的所有边缘。但我现在的问题是:如果我从图形的向量中删除一条边,则指针是错误的。
我不想将eache边缘复制到两个向量中,所以我认为我必须这样做,但我真的看到了从向量中删除某些内容的问题。
是否有解决方案或我是否必须复制每个边缘? 有人可以帮帮我吗?
答案 0 :(得分:1)
我会使用描述符或只是对所有容器使用shared_ptr。
描述符是Boost图库中的首选武器