Ich versuche, die folgende config.yaml-Datei zu analysieren.yams-cpp verschachtelte Sequenz Rückgabe der Karte anstelle von Wert
config.yaml
foo:
bar:
baz: [1, 2, 3, 4]
bam: "some_string_value"
test.cpp
YAML::Node configObj = YAML::LoadFile("cfig.yaml"); // loads file just fine
YAML::Node fooObj = configObj["foo"]; // this Node object is a Map
// iterate over foo node to get bar node
for(auto it = fooObj.begin(); it != fooObj.end(); ++it){
YAML::Node barMap = it->second; // this Node object is a Map
// iterate over bar node to get bad node
for(auto i = barMap.begin(); i != barMap.end(); ++i){
YAML::Node bazMap = i->second; // this node is a sequence
for(std::size_t i=0; i<bazMap.size(); i++
auto index = bazMap[i].as<int>(); // <<< This is the problem
}
}
}
Das Problem, soweit ich sehen kann, ist, dass ich Index ein int zu sein, aber bazMap[i].as<int>()
ich erwarte erwarte ich 1 die erste Schleife ist, 2 der zweite usw. Was ich stattdessen bekomme, ist bazMap[i].as<int>()
ist vom Typ map. Was vermisse ich hier in meinem Verständnis?
Danke,
Bruce
aktualisieren Die Antwort war, dass ich für Schleifen am Anfang meiner verschachtelt gestoppt.
Haben Sie das gelöst? Wenn ja, können Sie unten eine Antwort schreiben und sie als "akzeptiert" markieren. –
Sorry, ich war im Urlaub. Ich habe und ich werde. Vielen Dank! – CompSciGuy139