在 C++ 中,YAML::Node 类型的对象可以使用 YAML::Node::FindValue() 方法来查找指定的键值对,并返回一个 YAML::Node 类型的对象。如果查找成功,则返回该键值对对应的节点对象;如果查找失败,则返回一个空的 YAML::Node 对象。 因此,如果你想判断一个 YAML::Node 对象中是否存在指定的键值对,可以使用 FindValue() 方法来查找该键值对,然后判断返回的节点对象是否为空即可。示例代码如下: ``` #include <yaml-cpp/yaml.h> #include <iostream> int main() { YAML::Node config = YAML::LoadFile("config.yaml"); YAML::Node node = config["key"]; if (!node.FindValue("subkey").IsNull()) { std::cout << "subkey exists" << std::endl; } else { std::cout << "subkey does not exist" << std::endl; } return 0; } ``` 在上述代码中,我们首先加载了一个 YAML 配置文件,并获取了其中的一个节点对象。然后,我们调用了 FindValue() 方法来查找该节点对象中是否存在名为 subkey 的键值对,如果存在,则输出 subkey exists,否则输出 subkey does not exist。 需要注意的是,如果你要查找的键值对中包含数组或映射类型的值,你需要使用 YAML::Node::operator[]() 方法来访问子节点。例如: ``` if (!node["subkey"][0]["subsubkey"].IsNull()) { std::cout << "subsubkey exists" << std::endl; } else { std::cout << "subsubkey does not exist" << std::endl; } ``` 在上述代码中,我们通过 operator[]() 方法访问了一个名为 subkey 的键值对,并获取了该键值对中的第一个子节点。然后,我们又通过 operator[]() 方法访问了该子节点中名为 subsubkey 的键值对,并判断是否存在