如何在文件中存储图形

How to store graph in files

我想将以下信息存储在一个文件中。 我的程序由一组连接形成图形的字符串组成。 我称每个字符串为 "Tag".

假设我们有 3 个主要标签 $Mohammed , $car , $color

每个主标签都包含子标签,每个子标签都有一个值或另一个子标签或一组子标签。

$Mohammad:
    $Age: "18"
    $color: $red
    $kind_of: $human
    $car:
        $type: $toyota
        $color: $blue
        $doors:
            $number: "3"
$car:
    $made_of: $metal
    $used_for: $transporting
    $types: {$mercedes,$toyota,$nissan}
    $best_color: $red

$color:
    $usedto: $coloring_things
    $example: {$red,$green,$blue,...}

但不仅如此,同名标签之间存在联系,因此$Mohammed->$car->$color必须与主标签$color联系在一起。并且 $Mohammed->$color:$red$car->$best_color:$red$color->$best_color: $red 和主标签 $red 必须相互连接。

连接的标签意味着以我可以立即调用连接的标签的方式存储。就像电脑内存一样。当它从内存中调用某些东西时,它会调用请求信息之前和之后的信息。

我第一次看自己的情况,以为XML就可以解决,后来发现XML不能表示图

我不想为此使用数据库。我想把数据库作为我最后的武器。

关于如何存储、连接和调用程序中的信息有什么想法或建议吗? 提前致谢。

您实际上可以使用 XML,但我建议使用 JSON 或 Yaml。

您的示例格式已经非常接近 Yaml。

在 boost 的 property_tree

处抢劫

它包含一个很好的 c++ 方式来表示您的图表,让您可以很容易地决定您想要哪种文件表示形式。即xmljsoninfo.

另外,我不明白为什么你的图不能用 xml 表示,因为它支持命名节点。

虽然 property_tree 也支持 ini 格式,但实际上不能代表你的 >2 级深度树。