1

如何使用从 json 解码的 boos 属性映射将数组转换为 stl 的向量

               hash = {'time_series':[1.0,1.0])


                ptree pt2;
        std::istringstream is (content); read_json (is, pt2);
        std::vector<double> time_series = pt2.get("time_series");

../src/rtbTimeSeries.cpp:172:62: error: no matching function for call to ‘boost::property_tree::basic_ptree<std::basic_string<char>, std::basic_string<char> >::get(const char [12])’
4

2 回答 2

1

你应该使用这样的东西

std::vector<double> v;
pt::ptree subtree = p.get_child("time_series");
for (const auto& tree : subtree)
{
  v.push_back(tree.second.get<int>(""));
}
for (auto i : v)
{
   std::cout << i << std::endl;
}

http://liveworkspace.org/code/WlrPt 16 美元

于 2013-02-22T07:09:15.707 回答
1

您的错误首先出现是因为您没有为get函数指定模板类型。请参阅五分钟教程以了解如何读取数组。

我认为没有简单的方法可以作为容器读取,但似乎可以将迭代器传递给 children。可以将它与向量的构造函数一起使用。

于 2013-02-22T07:14:39.313 回答