ブーストPropertyTreeは、キー/値のペアを格納するために、ツリー構造を提供します。ツリー構造は、トランクが、多数の小枝を持って、多くの支店を持つ存在することを意味します。ファイルシステムは、ツリー構造の良い例です。ファイルシステム自体は、サブディレクトリを持っているようにすることができ、サブディレクトリとルートディレクトリを持っています。
1.ブースト:: property_tree :: ptreeでのデータへのアクセス
書式#include <ブースト/ property_tree / ptree.hpp> の#include <iostreamの> 使用してブースト:: property_tree :: ptreeでは、INT メイン(){ ptreeでのPT。 pt.put(" C:.Windows.System "、" 20個のファイル" ); ptreeで&C = pt.get_child(" C:" )。 ptreeで&窓= c.get_child(" Windowsの" ); ptreeで&システム= windows.get_child(" システム" )。 std :: coutの << system.get_value <はstd :: std ::てendl; リターン 0 ; }
()入れブースト:: property_tree :: ptreeでは、キー/値のペアを保存し、ツリー構造であるため、2つのパラメータを期待しています。木はちょうど値は、各支店や小枝に割り当てる必要があり、枝や小枝で構成されていません。
入れて渡される最初のパラメータは、()より興味深いものです。これは、ディレクトリへのパスです。しかし、それはWindows上の共通パスの区切りであるバックスラッシュを使用していません。これは、ドットを使用しています。
サブブランチにアクセスするには、同じタイプのget_childのオブジェクトへの参照を返すget_childを()、()を呼び出しコールされました。
2. basic_ptree内のデータにアクセスする<はstd ::文字列、整数>
#include <ブースト/ property_tree / ptree.hpp> の#include <ユーティリティ> の#include <iostreamの> int型のmain(){ typedefをブースト:: property_tree :: basic_ptree <はstd :: 文字列、整数 > ptreeで。 ptreeでのPT。 pt.put(ptreeで:: path_type { " C:\\ Windowsの\\システム"、' \\ ' }、20 ); pt.put(ptreeで:: path_type { " C:\\ Windowsの\\カーソル"、' \\ ' }、50 ); ptreeで&窓= pt.get_child(ptreeで:: " C:\\ Windowsの" }、' \\ ' ); int型ファイル= 0 ; 以下のため(のconstのstd ::ペア<のstd :: 文字列、ptreeで>&P:窓){ ファイル + = p.second.get_value < 整数 > (); } のstd :: coutの <<ファイル<< はstd ::てendl; リターン 0 ; }
デフォルトでは、Boost.PropertyTreeはキーの区切り文字としてドットを使用しています。あなたがセパレータとして、バックスラッシュなど、別の文字を使用する必要がある場合、あなたは入れて文字列としてキーを渡しません()。あなたは型ブースト:: property_tree :: ptreeで:: path_typeのオブジェクトでラップInstand。ブースト:: property_tree :: ptreeでに依存し、このクラスのコンストラクタは、その最初のパラメータとして、キーとその2番目のパラメータとしてのセパレータをとります。