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ます。配列の読み取り方法については、Five Minute Tutorialを参照してください。

コンテナーとして読み取る簡単な方法はありませんが、子のイテレーターを取得することは可能のようです。これをベクターのコンストラクターで使用できる可能性があります。

于 2013-02-22T07:14:39.313 に答える