タグ

boostに関するyowanoのブックマーク (7)

  • letsboost::bimaps

    abstract 必要なヘッダ <boost/bimap/bimap.hpp> (基), <boost/bimap/set_of.hpp> (set view), <boost/bimap/multiset_of.hpp> (multiset view), <boost/bimap/unordered_set_of.hpp> (unordered_set view), <boost/bimap/unordered_multiset_of.hpp> (unordered_multiset view), <boost/bimap/list_of.hpp> (list view), <boost/bimap/vector_of.hpp> (vector view), <boost/bimap/unconstrained_set_of.hpp> (viewなし) 出来ること 双方向map リファ

    yowano
    yowano 2014/01/14
    bimapの基本サンプルソース。
  • C++ 双方向マップ boost::bimaps 覚え書き - unstable diary

    双方向のからアクセス可能なmapとしてboost::bimapsがあります。 今回はそのboost::bimapsの覚え書きです。 まずは単純な1対1の双方向mapとして使う場合 #include <string> #include <iostream> #include <boost/bimap/bimap.hpp> int main() { // int : string の1対1のmap typedef boost::bimaps::bimap<int,std::string> bimap_t; typedef bimap_t::value_type bimap_value_t; bimap_t bm; // 要素の挿入 bm.insert( bimap_value_t( 1, "one" ) ); bm.insert( bimap_value_t( 2, "two" ) ); bm

    C++ 双方向マップ boost::bimaps 覚え書き - unstable diary
    yowano
    yowano 2014/01/14
    boostのbimapの使い方。1対1の基本的な双方向mapや、多対1、要素に情報が付加された(with_info)mapや、要素の型にtagが付けられた(tagged)mapまで、ソース付きで解説。
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    yowano
    yowano 2014/01/13
    コマンドの指定なども詳しく解説されている。
  • 予定外 Windows環境へのBoostライブラリインストール

    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 Boostライブラリのバージョン1.49.0が出ていたので、お手軽なインストーラ(BoostPro)を使ってインストールしようと思ったんですが、なぜか現状、BoostProはバージョン1.47.0までしか公開されていない状態でした。 なので、今回Boostライブラリのソースをダウンロードしてビルドしてみたので、その手順をメモ代わりに書いておこうと思います。 あらかじめ、開発環境としてVisual C++がインストールされていることを前提としています。 私の環境では64bit版のWindows 7 にVisual Studio 2010がインストールされているので、ここではその場合の手順となっています。 以下のBoost C++ライブラリの公式サイトからダウンロードします。 Boo

    yowano
    yowano 2014/01/13
    boostインストール時のオプションの意味について、他のサイトには解説があまりなかったので、ブクマ。
  • Modularized Boost(GitHubへ移行したリポジトリ)を使用する - イグトランスの頭の中

    この記事は、C++ (fork) Advent Calendar 2013の3日目です。 現在、Boostのソースコード管理はSubversionからGitへ乗り換えた上でGitHubへの移行が進められています (github.com/boostorg (Boost.org))。そこで、この記事ではGitリポジトリからBoostを使用する方法のまとめを書きます。 なお、この記事の対象はWindowsです。以下の説明でもmsysGitのgit bashとVisual Studioコマンドプロンプトが混在しています。$で始まる行はgit bash、>で始まる行はVisual C++へのパスが通ったコマンドプロンプトで実行したものです。実行速度が速いのでmsysGitで試しましたが、Cygwinでも可能だと思います。 最新版を使う まず簡単なところからです。masterやdevelopブランチ

    Modularized Boost(GitHubへ移行したリポジトリ)を使用する - イグトランスの頭の中
    yowano
    yowano 2014/01/13
    最新版のboostのインストールの仕方。ただし、Gitコマンドを使える環境が必要。
  • 未初期化な領域とアラインメント - Cry's Blog

    http://d.hatena.ne.jp/Cryolite/20051021#p1 の問題に対する解答. まず大前提として,未初期化な領域に配置構文 new を用いてオブジェクトを構築する手法は潜在的な危険が多く,当にそれが必要な場合以外は用いないという方針が基であることを確認しておいてください. まず最初に自動変数として(スタック上に)確保した char の配列に任意のオブジェクトを構築する場合についてです. class MyClass { ..... }; int main() { char buf[sizeof(MyClass)]; MyClass *p = static_cast<MyClass *>(static_cast<void *>(buf)); ::new (p) MyClass(); ..... // #1 p->~MyClass(); }上のコードはアラインメン

    未初期化な領域とアラインメント - Cry's Blog
    yowano
    yowano 2013/11/15
    『char の配列を確保する new が返すアドレスは,その配列のサイズ以下のあらゆる型のオブジェクトが安全に構築できるアドレスであることが規格上要求されている』など、知りづらい有益な情報アリ。
  • C++ 高速化 - speedkumoのプログラミング日記

    研究でC++でソフトウェアの開発を行っていますが データ量が少ない場合は速度はあまり、気にしなくていいのですが、 データ量が増えてくると、計算量などを意識して、高速化をする必要性を感じてきました。 自分は実装でSTLのmapやmultimapを使っているのですが、mapの検索の計算量がO(log n),multimapの計算量がO(nlogn)なのでここで、時間をっているのだと考えられます。 そのため、この部分の計算量を減らす方法を検討しました。 まず、STLのmapの計算量がlog(n)なのは、実装に二分木が用いられるためです。そのため、このmapの実装をhashで行ったら高速化されるのではないかと考えました。 詳しい説明は以下 BoostでC++0xのライブラリ「TR1」を先取りしよう (5) (1/2):CodeZine(コードジン) そこで、調べていくと、boostで計算量がO(

    C++ 高速化 - speedkumoのプログラミング日記
    yowano
    yowano 2013/09/05
    mapでは遅いと感じた時には、boostのunordered_mapがおすすめ。listのオーバーヘッドが大きいと感じた時には、C++0xに含まれるforward_listがおすすめ。
  • 1