Как получить массив в вектор из stl с помощью карты свойств boos, декодированной из json
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])’
Вы должны использовать что-то вроде этого
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;
}
Ваша ошибка возникает в первую очередь потому, что вы не указали тип шаблона для get
функция. Пожалуйста, смотрите Пятиминутный урок чтобы увидеть, как читать массив.
Нет простого способа прочитать контейнер как контейнер, но кажется возможным получить итераторы детям. Может быть возможно использовать это с конструктором вектора.