2015-10-12 54 views
1

我有以下YAML文件,我需要在YAML-CPP解碼如何解碼列表清單?

WorldMatrix: 
- [0.9951964247911349, 0.018388246064889716, -0.09615585520185603, -0.5403611888912607] 
- [0.0668777651703494, 0.5895969306048771, 0.8049241106757379, 0.49102218903854067] 
- [0.0714943396973693, -0.8074882858766219, 0.5855349926035782, 3.057906332726323] 
- [0.0, 0.0, 0.0, 1.0] 

至於這樣我已經得到了,但我無法弄清楚如何繼續:

YAML::Node config = YAML::LoadFile(path); 
for(YAML::const_iterator it=config.begin(); it != config.end(); ++it){ 


} 

回答

0

如果你想用std::vector它來存儲,有一個捷徑:

YAML::Node config = YAML::LoadFile(path); 
std::vector<std::vector<double>> worldMatrix = 
    config["WorldMatrix"].as<std::vector<std::vector<double>>>(); 

如果你只是想遍歷它,做任何你喜歡:

for (YAML::Node row : config["WorldMatrix"]) { 
    for (YAML::Node col : row) { 
    double value = col.as<double>(); 
    // do something with value 
    } 
} 
+0

我不認爲這是正確的。你的代碼給我一個段錯誤 – raaj

+0

兩個代碼庫給我一個段錯誤。 – raaj

+0

我認爲yaml-cpp中可能存在一個錯誤。這一定絕對有效。 – raaj