首页 文章

使用自定义属性在图形中获取/查找顶点的安全方法 - >良好的编程习惯?

提问于
浏览
2

我正在使用boost-graph-library编写Graph类 . 我使用自定义顶点和边缘属性以及一个映射来存储/查找给定属性的顶点/边 .
到目前为止,我对它的工作原理感到满意 .
但是,我有一个小问题,我不知道如何解决它"nicely" . 该类提供了一种方法

Vertex getVertex(Vertexproperties v_prop)

和方法

bool hasVertex(Vertexproperties v_prop)

现在的问题是,你会认为这是C中良好的编程习惯吗?
我的意见是,在我得到它之前,我首先要检查是否有可用的东西 . 因此,在获得具有所需属性的顶点之前,必须检查hasVertex()是否会为这些属性返回true .
但是,我想让getVertex()更健壮一点 . 当直接调用getVertex()而没有事先检查图形是否具有相应的顶点时,ATM将会发生段错误 . 第一个想法是返回NULL指针或指向经过最后存储的顶点的指针 . 对于后者,我还没有发现如何做到这一点 .
但是即使使用这个"robust"版本,也必须在获取顶点后检查正确性,否则在解除引用该顶点指针时也会遇到SegFault . 因此,我想知道如果事先没有检查可用性,是否允许getVertex()SegFault是"ok"?

1 回答

  • 0

    我要么改成这个:

    bool getVertex(Vertex& vertex, Vertexproperties v_prop);
    

    如果找不到顶点,或者 getVertex 引发异常 .

相关问题