Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取/查找具有自定义属性的图中顶点的安全方法->;良好的编程实践?_C++_Boost_Graph - Fatal编程技术网

C++ 获取/查找具有自定义属性的图中顶点的安全方法->;良好的编程实践?

C++ 获取/查找具有自定义属性的图中顶点的安全方法->;良好的编程实践?,c++,boost,graph,C++,Boost,Graph,我正在使用boost图形库编写一个图形类。我使用自定义顶点和边属性以及贴图来存储/查找给定属性的顶点/边。 到目前为止,我对它的工作方式很满意。 然而,我有一个小问题,我不知道如何“很好地”解决它。 该类提供了一个方法 Vertex getVertex(Vertexproperties v_prop) 和一种方法 bool hasVertex(Vertexproperties v_prop) 现在的问题是,你能把这个看作是C++中的良好编程实践吗? 我的意见是,在我得到它之前,我必须先检查一

我正在使用boost图形库编写一个图形类。我使用自定义顶点和边属性以及贴图来存储/查找给定属性的顶点/边。
到目前为止,我对它的工作方式很满意。
然而,我有一个小问题,我不知道如何“很好地”解决它。 该类提供了一个方法

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
在未找到顶点时引发异常