我只是想知道是否可以做这样的事情:
#include "graph.h"
Graph A, B;
Node n;
A.insertNode(n);
A.nodeExists(n); // returns true
B.nodeExists(n); // returns false
从现在开始,我只在boolean
类中存储了Node
var,它告诉我Node
对象是否已插入Graph
内。但就这样,会发生什么:
A.nodeExists(n); // returns true
B.nodeExists(n); // returns true
这是不正确的。我该如何解决这个问题?
答案 0 :(得分:0)
要么存储指向节点所属的Graph对象的指针(从而用Graph *替换你的bool)。然后,将检查的简单快速分配给特定的Graph对象。 Graph :: nodeExists函数内部就像asK:
if (n.pOwnerGraph == this)
return true;
作为替代方案,您可以扫描整个图形并查找给定节点。这要慢得多,但它并不需要节点中的Graph指针。