gpt4 book ai didi

c++ - 在 YAML 文件中将项目附加到 map

转载 作者:行者123 更新时间:2023-11-28 07:29:56 27 4
gpt4 key购买 nike

在 YAML 文件中,是否可以在定义 map 后向 map 添加项目?

例如,如果我有一个文件:

fruits:
bananas:
quantity: 4
apples:
quantity: 2
grapes:
quantity: 37

vegetables:
lettuce:
quantity: 2
beets:
quantity: 4

后来意识到我的“水果” map 不完整,我可以稍后在文件中做任何事情(即在定义“蔬菜” map 之后)以将另一个水果附加到现有 map 吗?某处:

fruits:
oranges:
quantity: 4

会附加到现有 map 而不是覆盖它吗?

换句话说,是否有一种有效的方法可以将“oranges”附加到文件中其他位置的现有“fruits”映射?

一些背景知识:我计划在 C++ 中使用 yaml-cpp。我正在使用 YAML 作为我正在编写的程序的输入文件格式。我将解析用户创建的文件并将结构转换为我程序中的对象。我希望能够将项目附加到 map ,因为当用户意识到需要或在引用它们的其他对象附近使用它们时,对象(在本例中为“水果”)分散在输入文件中是很常见的。

最佳答案

具有重复 key 的 YAML 无效。例如,以下是无效的 YAML:

fruits: foo
fruits: bar

如果您的 YAML 文件以:

fruits: whatever
bar: baz

那么就无法通过附加到文件来修改与键 fruits 关联的值。不同的 YAML 解析器可能会以自己的方式解释重复的键,但规范将其定义为错误。

如果需要,您可以对 YAML 文件进行后处理,例如:

fruits1: whatever
bar: baz
fruits2: something else

然后在您的代码中,只需将它们与 fruits1fruits2(以及 fruits3,...)关联的值合并.

关于c++ - 在 YAML 文件中将项目附加到 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931927/

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