gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:02:23 24 4
gpt4 key购买 nike

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

Vertex getVertex(Vertexproperties v_prop)

和一个方法

bool hasVertex(Vertexproperties v_prop)

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

最佳答案

我要么将其更改为:

bool getVertex(Vertex& vertex, Vertexproperties v_prop);

或者让 getVertex 在找不到顶点时引发异常。

关于c++ - 在具有自定义属性的图中获取/查找顶点的安全方法 -> 良好的编程习惯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2462233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com