2017-01-12 7 views
1

次のコードを使用して数値の配列を作成します。それは私の希望する結果を除いて良いです番号の昇順ptree配列

{ 
    "": "1.100000", 
    "": "2.200000", 
    "": "3.300000" 
} 

数字ではない文字列の配列である必要があります:

は、次のコードを実行した後、私は次のような結果をreveive。 boost::property_tree::ptree(x)で直接番号を追加するとエラーになります。出力jsonの結果をどのように生成できますか?

{ 
    "": 1.100000, 
    "": 2.200000, 
    "": 3.300000 
} 

コード:

#include <iostream> 
#include <boost/property_tree/ptree.hpp> 
#include <boost/property_tree/json_parser.hpp> 

int main() 
{ 
    boost::property_tree::ptree pt; 
    std::vector<double> Vec={1.1,2.2,3.3}; 
    for(double x:Vec) 
    { 
     std::string x_string=std::to_string(x); 
     pt.push_back(
      std::make_pair("", 
      boost::property_tree::ptree(x_string))); 

    } 
    boost::property_tree::json_parser::write_json(std::cout, pt); 
    std::cout<<std::endl; 
    return 0; 
} 
+0

おそらくpt.put()を使用しますか? – pSoLT

+0

@pSoLT、 'put'は空のパスを認識しません。 – ar2015

+0

あなたは正しい、私の悪いです。 – pSoLT

答えて

0

ptreeではそのような機能を持っていません。

すべてがシリアル化された形式のテキストです。選択されたバックエンド形式(タイプ)のデータをサポートすることができます。

ドキュメントproof

ブーストはないは、XMLライブラリを持っている:

enter image description here

は私が再述べておくとして。

ブーストするにはJSONライブラリがあります。

ブーストにはプロパティツリーライブラリがあります。プロパティーツリーを扱っています。 JSON、XMLなどではありません。