我正在实施图表结构,我有一个Edge
类,其中包含to
和from
成员。我想支持与无效节点的连接,例如,如果用户暂时删除节点,则不应删除它的边缘 - 它们应该只将其to
成员设置为某个无效状态。
在我阅读的书中,to
和from
是整数,值-1
表示无效节点。现在我不是很喜欢这个,我不认为它是好的风格,因为它没有与之相关的语义。
我一直在尝试不同的解决方案,但我有点不知道哪种方法效果不错。我在考虑:
enum class
,我认为它不会起作用union
,尚未与之合作但我也认为这个用例并不好Index
的自定义bool isValid
类,但这也存在问题,例如isValid
为false
时应该{{1}返回。Index::getIndex()
?但我并不想对可选值进行编码,我想表达一个事实,即索引可以是整数值,也可以是boost::optional
状态。如何用优质代码表达我想要的东西?