【发布时间】:2011-12-19 19:56:16
【问题描述】:
我这里有一个 C++ 问题。
我有三个类:Graph、Nodes 和 Edges,用于对简单的 Graph 进行建模。 现在 Graph 类的对象有一个带有 Node 类对象的向量和一个带有 Edge 类对象的向量。
Node 类的对象必须知道所有传入和传出边。并且边缘类的对象必须知道它来自哪个节点以及去往哪个节点。 现在我有以下问题:图中的所有边都存储在边类的向量中。节点类的对象也必须知道一些边,所以我给了它们一个指针向量,指向图形向量中的所属边。但我现在的问题是:如果我从图形的向量中删除一条边,则指针是错误的。
我不想将每个边复制到两个向量中,所以我认为我必须这样做,但我确实看到了从向量中删除某些内容的问题。
有解决方案还是我必须复制每个边缘? 有人可以帮帮我吗?
【问题讨论】:
-
这样我们的帮助才能最有价值,你能告诉我们这是作业吗?也就是说,这是一种学习练习,还是一种工作或娱乐练习?
-
@Rob:99% 的人说不是作业。也许是学术,但不是家庭作业
-
这是学术性的。我唯一的问题是这个。这个练习中的其他所有内容对我来说都很清楚,并且很容易编写,但是我对这个向量的东西有问题。因为我必须用向量来做这件事,而且我可能不会复制太多的对象。
-
告诉我们更多关于“我必须用向量来做到这一点”的信息。为什么不使用,例如
std::list? -
在练习中是一些我必须使用的函数声明,因为它们在那里显示。而那些返回所有可用边或节点的函数类型为“向量”。