p_tan's blog

勉強日記です。ツッコミ大歓迎

2010-01-01から1年間の記事一覧

Mechanizeを使ってみる

以下のサイトを参考にRubyからMechanizeを使ってみた 404 Not Found RubyのMechanizeを解説 for 1.0.0 - きたももんががきたん。 agent = Mechanize.new して agent.get("適当なURL") して agent.page.at1(~~) または agent.page.search(~~) で任意の要素を…

boost::thread::timed_join

thread::timed_join : joinの時間指定版 指定時間待ってもスレッドが終わらなければfalseを返す。 #include <boost/thread.hpp> void worker() { printf("worker start.\n"); int c = 0; for(int i = 0; i < (1 << 30); i++){ c++; } printf("worker end.\n"); } int main() {</boost/thread.hpp>…

EventVisitorを複数指定する

std::make_pairまたはboost::make_listを使う boost::make_listはネストされたstd::pairを返す #include <iostream> #include <utility> #include <boost/graph/graph_utility.hpp> // for boost::make_list #include <boost/graph/adjacency_list.hpp> #include <boost/graph/breadth_first_search.hpp> using namespace boost; using name…</boost/graph/breadth_first_search.hpp></boost/graph/adjacency_list.hpp></boost/graph/graph_utility.hpp></utility></iostream>

Visitorの使い方

参考 Boost Graph Library: Visitor Concepts Visitorとは グラフアルゴリズムを拡張するためのコールバック関数の集まり 使用例)幅優先探索アルゴリズムで訪れる順に頂点を出力する、等 各グラフアルゴリズムに対してVisitorコンセプトが定義されている Vi…

グラフアルゴリズムの使用方法:ダイクストラの最短パスアルゴリズム

グラフアルゴリズムの使用例としてダイクストラの最短パスを使う。以下サンプルコード #include <iostream> #include <boost/graph/graph_traits.hpp> #include <boost/graph/adjacency_list.hpp> #include <boost/graph/dijkstra_shortest_paths.hpp> #include <boost/property_map/vector_property_map.hpp> #include <boost/foreach.hpp> using namespace std; us…</boost/foreach.hpp></boost/property_map/vector_property_map.hpp></boost/graph/dijkstra_shortest_paths.hpp></boost/graph/adjacency_list.hpp></boost/graph/graph_traits.hpp></iostream>

グラフアルゴリズムを使うための予備知識

参考 Quick Tour of Boost Graph Library Boost Graph Library: Named Parameters グラフアルゴリズムを使うための予備知識 グラフアルゴリズムはそれぞれ関数で提供されている。 例:深さ優先探索→depth_first_search() グラフアルゴリズムにはグラフオブジ…

プロパティとプロパティ・マップ2

前回の続き。 参考 Quick Tour of Boost Graph Library Boost Graph Library: Using Property Maps 内部プロパティ(adjacency_matrix) adjacency_matrixの内部プロパティもテンプレート引数で指定する。 typedef adjacency_matrix<undirectedS, property<vertex_index_t, int>, // vertex property prope</undirecteds,>…

プロパティとプロパティ・マップ

参考→Quick Tour of Boost Graph Library, Boost Graph Library: Using Property Maps, グラフの辺や頂点にプロパティ(重みや名前、色などの情報)を付けるためにはプロパティ・マップを使う。 プロパティの管理方法には2種類ある 内部プロパティ:グラフ・…

グラフ・インタフェイスについて

参考→Boost Graph Concepts 要点と考えたこと: データ構造とアルゴリズムの独立性を高めるためにインタフェイスを通じてグラフのデータへアクセスする グラフのデータ:頂点、辺、ある頂点の隣接頂点や接続辺など インタフェイスの条件を満たすような自作の…

グラフの型と基本的な操作2

グラフの型と基本的な操作 - p_tanのお勉強日記の隣接リストに続いて隣接行列。 参考サイト↓ Boost Graph Library: Adjacency Matrix(日本語) Boost Graph Library: Adjacency Matrix - 1.43.0(英語) adjacent_matrix サンプルコード。 #include <iostream> #inclu</iostream>…

グラフの型と基本的な操作

はてダ始めてみました。 Boost Graph Libraryについて勉強したことを書いていきます。 参考サイト↓ Table of Contents: Boost Graph Library - 1.43.0(英語) Table of Contents: Boost Graph Library(日本語)グラフ理論に関する基本的な知識はあるものと…