タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

boostに関するkosakiのブックマーク (3)

  • はじめてのにき(2009-12-13)

    _ LRUMap だいたいわかった! でまぁ list が必要かという話で slist じゃダメなのだろうかと kinaba さんに聞いたら大丈夫じゃねとの返答のすぐ後に やっぱダメじゃねとのこと。 後ろ向きのリンクが無いと古いヤツ使った時に 移動が O(1) でできないからねー。 じゃあどうするかなーと考えたのは、 slist アップデート時は前向きポインタに |1 した値を入れておく だからリンクをたどる時は必ず下位 1 bit は落とす でまぁ同じ要素を指すものを末尾にもつける 古いヤツを回収してる最中に (next&1)==1 な要素を見つけたら、その要素は消さないで次を消す とか。 新しい要素が追加されずに 同じ要素が参照されまくったりするとたくさんメモリを使ってしまうので、 たまに O(N) の GC を走らせるといいかもしれない。 なんかもっと賢くやって欲しいよなー (12:

  • BoostのMPLへのいざない part 1

    不幸にも(幸いにも?)私はプログラマにならない道を進むわけだけれど、私がC++を学んだ証を残しておきたいと思った。趣味としてのプログラミングは、まあ恵まれている。自分が好きなように書いていいのだから。 世に、Boostなる一群のライブラリがある。中でもMPLは極めてすばらしいのだが、広く世間一般に知られていない。思うに、これはきっかけがないからなのだろう。第一、日語の文献もほとんど存在しない。ここはひとつ、チュートリアルのようなものを書いてみるべきか。 ここにすばらしいがある。C++ Templatesと、C++ Template Metaprogrammingである。前者はC++のテンプレート全般について、深く解説しているで、後者は、Boost、とくにMPLに対するだ。http://www.boost.org/libs/mpl/doc/index.htmlで、その重要な導入部分を

  • BoostのMPLへのいざない part 2

    Boostのチュートリアルでは、STLのiter_swapを実装しているけれど、同じにするのでは能がない。ここでは、STLのcopyのようなものの実装を通して、型計算を学ぶことにしよう 2 型計算 2.1 君に仕事だ 君は、とあるプロジェクトで働くことになった。君に割り当てられた仕事は、copy_and_sumという関数を実装することだ。これは、STLのcopyのように振舞いつつ、コピーする値をすべて加算して、合計を返すという関数だ。次のように使う。 int main() { std::vector<int> src, dest(3) ; src.push_back(1) ; src.push_back(2) ; src.push_back(3) ; int ret = copy_and_sum( src.begin(), src.end(), dest.begin() ) ; std::

  • 1