C++
MeCabをマルチスレッドで動かしてみたい!という話です。 マルチスレッドの方法としてはC++11のstd::threadを使います。MeCabをマルチスレッドで動かす方法については以下の記事が参考になりました。 MeCabをC++から使ってみる | mwSoft またMeCab公式にもマ…
↓この辺りの記事を見て色々と試したくなった。 フィボナッチで各種言語をベンチマーク - satosystemsの日記 フィボナッチで各種言語をベンチマーク C++バージョン - なかGの日記 以下の方法でフィボナッチ数列を計算してみる 素の関数(元々の記事と一緒) fib…
Double ArrayによるTrieのライブラリDartsのcommonPrefixSearch関数は次のような戻り値と引数になっています。 size_t commonPrefixSearch(const key_type *key, T* result, size_t result_len, size_t len = 0, size_t node_pos = 0);ここでresult_lenは結…
コンパイル時 g++でコンパイルするときに-lpthreadしないとダメ。 std::threadの引数 参照渡しをするときには明示的にstd::refで渡さないとダメ。
結論 検索した程度では方法は見つからなかった 代替案 #include <boost/tr1/unordered_map.hpp>してstd::tr1::unordered_mapを使う。 すると#include <boost/serialization/unordered_map.hpp>でシリアライズできる。</boost/serialization/unordered_map.hpp></boost/tr1/unordered_map.hpp>
unordered_mapにpairを突っ込んだら動かなくて悩んだんですが、自分の作ったクラスだけでなくpairとかtupleでもhashを定義しないと動かないみたいです。namespace stdに指定する方法とハッシュ関数をunordered_mapに渡す方法の2種類があるみたいですが、とり…
Ubuntuでclang++ 3.2を使っていたのですが、<chrono>をインクルードすると大量のエラーメッセージが出ました。 解決法をググっていたら以下のサイトが引っかかりました。 Clang Developers - #include with Clang 3.1 インクルードしているtype_traits、私の場合は/u</chrono>…
Darts: Double ARray Trie System Double Arrayを使いたかったので、Dartsを使おうとしたらサンプルコードが動かなくて困りました。 g++でもclang++でもダメでした。 オプションの違いとかなんですかね?exactMatchSearchに戻り値の型を指定したら一応動かせ…
LinuxでのC/C++コンパイラといえばgcc/g++でしたが、最近clang/clang++というコンパイラのエラーメッセージがわかりやすいという話をよく見かけるので試してみました。 インストール 主に以下の公式サイト通りにやります。 Clang - Getting Started configur…
たぶん機能を知らないだけなのもいくつかある気がする. エラーメッセージの意味がわからない エラーメッセージの行番号が書き間違えてる場所とぜんぜん違う 配列の長さがsizeofしないとわからない 文字列操作が貧弱 テンプレートを使うと型名がすごく長くな…
一つの配列を使うのと,vectorを組み合わせるのとboost::multi_arrayを使うのではどれが一番使いやすいんでしょうか?
Visual Studio2010 にBoostライブラリをインストールしたのでメモ. Download Boost Library Here - BoostProからインストーラをダウンロードして実行. プロパティのVC++ディレクトリ→インクルードディレクトリにC:\Program Files\boost\boost_1_46_1,ライ…