C++ 获取/查找具有自定义属性的图中顶点的安全方法->;良好的编程实践?
我正在使用boost图形库编写一个图形类。我使用自定义顶点和边属性以及贴图来存储/查找给定属性的顶点/边。C++ 获取/查找具有自定义属性的图中顶点的安全方法->;良好的编程实践?,c++,boost,graph,C++,Boost,Graph,我正在使用boost图形库编写一个图形类。我使用自定义顶点和边属性以及贴图来存储/查找给定属性的顶点/边。 到目前为止,我对它的工作方式很满意。 然而,我有一个小问题,我不知道如何“很好地”解决它。 该类提供了一个方法 Vertex getVertex(Vertexproperties v_prop) 和一种方法 bool hasVertex(Vertexproperties v_prop) 现在的问题是,你能把这个看作是C++中的良好编程实践吗? 我的意见是,在我得到它之前,我必须先检查一
到目前为止,我对它的工作方式很满意。
然而,我有一个小问题,我不知道如何“很好地”解决它。 该类提供了一个方法
Vertex getVertex(Vertexproperties v_prop)
和一种方法
bool hasVertex(Vertexproperties v_prop)
现在的问题是,你能把这个看作是C++中的良好编程实践吗?
我的意见是,在我得到它之前,我必须先检查一下是否有可用的东西。
因此,在获取具有所需属性的顶点之前,必须检查hasVertex()是否会为这些属性返回true。但是,我想让getVertex()更健壮一些。如果直接调用getVertex(),而不事先检查图是否有相应的顶点,则会发生故障。第一个想法是返回一个空指针或指向最后一个存储顶点的指针。对于后者,我还没有找到如何做到这一点。
但即使使用这种“健壮”版本,在获取顶点后也必须检查其正确性,或者在取消引用该顶点指针时也会遇到SegFault。
因此,我想知道如果事先没有检查可用性,让getVertex()SegFault是否“可以”?我会将其更改为:
bool getVertex(Vertex& vertex, Vertexproperties v_prop);
或者让
getVertex
在未找到顶点时引发异常。我会将其更改为:
bool getVertex(Vertex& vertex, Vertexproperties v_prop);
或者让getVertex
在未找到顶点时引发异常