wiki:HowTo/BoostStudy2

Version 2 (modified by 村山 俊之, 14 years ago) ( diff )

--

Boost 勉強会

Boost 世界一周の旅

  • Property Tree

木構造を持つデータプロパティ管理。 XML (RapidXml), JSON, INI ファイルパーサ提供

boost::property_tree::ptree型

  • Uuid

ユニークID生成。乱数生成器のデフォルトは mt19937

  • Range2.0

Rangeアルゴリズム (イテレータの組ではなく範囲を渡す)、 Rangeアダプタ (遅延評価) が追加された。

要チェック→Oven

  • Filesystem v3

path 日本語対応等

string と wstrint の両方を使用するためにオーバーロードが必要なくなった?

  • Polygon

平面多角形 (2D) のアルゴリズム。

  • Meta State Machine (MSM)

新たな状態マシンライブラリ。状態遷移表を直接記述。

まとめ

  • 1.44.0 はかなり充実。特に Range 2.0 はオススメ

Boost.Graph 入門

グラフ

  • 頂点 vertex と辺 edge からなる
  • 配列・線形リンクリスト (直線、木)

有向グラフ・無向グラフ

  • 辺に向きがあるか否か

操作

頂点と線を作ったり、できたグラフの中を辿ったり…

JR 最長片道切符

とにかく遠回りして一番長い距離の切符 (のルート) を求める

  • →挫折した。データ入力が大変 (そりゃそーだw)
    • でも北海道だけは全部入力したよ。
  • プログラムは作ったよ。
    • 長万部駅を検索の起点にしたよ (青函トンネル超えた最初の駅)
    • 実際動かしてみたよ

なぜ Boost.Graph?

  • イテレータでのアクセスがある
    • 辺・頂点
    • 一部は pair<iter, iter> で Range !
  • malloc/for → STL(コンテナ/アルゴリズム)

質疑応答

  • 直線、木もグラフだよね?
    • →正確にはサブセット?
  • テンプレート引数の書く順番間違えたら MS-VS だとエラー箇所の赤線表示でる?
    • でた。 VS2010パネェ
Note: See TracWiki for help on using the wiki.