作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这应该很简单(我只是在学习 boost,所以我错过了一些东西)
我已经使用 json_read 读取了一些简单的 JSON,现在有了一个 ptree。网络上的所有示例都显示使用 ptree.get("entry_name") 来获取条目。我想做的就是:
ptree pt;
read_json(ss,pt);
BOOST_FOREACH(ptree::value_type &v, pt)
{
std::cout << v.{entry_name} << v.{value}
}
即循环遍历 ptree 并写出每个名称(即您放入 pt.get() 中的内容)及其相应的值。
抱歉,如果这很简单
罗斯
最佳答案
我正在寻找同样的东西,但无法在任何地方找到答案。事实证明这确实非常简单:
ptree pt;
/* load/fill pt */
for(iterator iter = pt.begin(); iter != pt.end(); iter++)
{
std::cout << iter->first << "," << iter->second.data() << std::endl;
}
iter->first
是条目名称,iter->second.data()
是第一层的条目值。 (然后您可以使用 iter->second.begin()
/end()
重新迭代以达到更深层次。)
此外,如果此迭代中的一个这样的节点不是终端节点并且本身是一个 ptree,您可以从该迭代器本身将其作为 ptree 获取:ptree subPt = iter->second.get_child("nodeName");
关于loops - 升压: Just iterate over elements of a ptree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5664705/
我是一名优秀的程序员,十分优秀!