如何在代码中表示图中的无效边?

时间:2015-04-13 12:48:59

标签: c++ c++11 graph

我正在实施图表结构,我有一个Edge类,其中包含tofrom成员。我想支持与无效节点的连接,例如,如果用户暂时删除节点,则不应删除它的边缘 - 它们应该只将其to成员设置为某个无效状态。

在我阅读的书中,tofrom是整数,值-1表示无效节点。现在我不是很喜欢这个,我不认为它是好的风格,因为它没有与之相关的语义。

我一直在尝试不同的解决方案,但我有点不知道哪种方法效果不错。我在考虑:

  • enum class,我认为它不会起作用
  • a union,尚未与之合作但我也认为这个用例并不好
  • 包含整数成员和Index的自定义bool isValid类,但这也存在问题,例如isValidfalse时应该{{1}返回。
  • 我最近的想法:Index::getIndex()?但我并不想对可选值进行编码,我想表达一个事实,即索引可以是整数值,也可以是boost::optional状态。

如何用优质代码表达我想要的东西?

0 个答案:

没有答案