タグ

cppに関するpaellaのブックマーク (3)

  • C++のmapについてのめも - ichirin2501's diary

    速度向上を考える上で、mapの使い方で差が出たのでめも。 mapは[ ]演算子がオーバーロードされているので、演算子の書き方を多用していた。演算子で書くと存在しないkeyを指定した場合、自動で生成してくれる。これが便利なときもあれば不便なときもある。 例えば、メモ化探索にmapを利用していた場合、既に探索した状態かどうかを調べるときに[]演算子で勝手に状態生成してもらっては困る。 なので、今まではこんな感じで書いてた。 map<int,int> mii; int dfs(int S){ if( mii.count(S) ){ return mii[S]; } int ret = 0; /* 処理 */ return mii[S] = ret; } countメソッドはkeyがあるかどうか(0or1)を返す。勝手に状態数は増えない。 でも、どう考えても 探索3回してるよねこれ mapの[]演

    C++のmapについてのめも - ichirin2501's diary
    paella
    paella 2011/03/25
    「[]演算子で書くと存在しないkeyを指定した場合、自動で生成してくれる。これが便利なときもあれば不便なときもある」
  • Boost.Asioで簡単なバックグラウンド処理 - Faith and Brave - C++で遊ぼう

    io_service::postで関数を投げる。 io_serviceを一つ作ってしまえば、次々に登録していけるので楽です。 #include <iostream> #include <boost/asio.hpp> #include <boost/bind.hpp> #include <boost/thread.hpp> namespace asio = boost::asio; void background() { boost::this_thread::sleep(boost::posix_time::seconds(3)); std::cout << "end" << std::endl; } int main() { asio::io_service io_service; boost::thread t(boost::bind(&boost::asio::io_service

    Boost.Asioで簡単なバックグラウンド処理 - Faith and Brave - C++で遊ぼう
  • QuickCheck++に入門した - Faith and Brave - C++で遊ぼう

    QuickCheck++は、Haskellで広く使われているテストフレームワークである QuickCheckをC++に移植したライブラリです。 ドキュメントと最新版は以下にあります。 QuickCheck++ Documentation 0.0.2 Version 0.0.2ではsigned/unsigned周りでバグがあるので generate.hhを以下からダウンロードして置き換えてください。 generate.hh さて、では使い方を見ていきましょう。 1.インクルード QuickCheck++はヘッダファイルのみのライブラリなのでインクルードするだけですぐ使えます。 #include <quickcheck/quickcheck.hh> 2.テストするプロパティの作成 以下は、reverseを2回した結果、元に戻るかのテストクラスです。 quickcheck::Propertyクラ

    QuickCheck++に入門した - Faith and Brave - C++で遊ぼう
    paella
    paella 2010/03/12
    テストデータをランダムに生成したりするなど、興味深い動き。何をしているのか中を見よう。0.1.1だけど(2010/03/12時点)、今後に期待のできるテストライブラリ。
  • 1