dawgdic-0.4.2 に更新
以前の投稿(2009-08-28 - やた@はてな日記)で述べたとおり,重み付きキー補完において,外部レコードを利用できるように拡張しました.ただし,とても使いにくいのでおすすめできません.やっつけ仕事っぽい仕上がりです.
- 使い方
- キー補完用辞書の構築
- dawgdic::RankedGuideBuilder::Build() の第三引数に dawgdic::ValueType を比較するための関数オブジェクトを渡す.
- キー補完
- RankedCompleter の代わりに RankedCompleterBase<> を利用する.
- RankedCompleterBase<> のテンプレート引数に上で渡した関数オブジェクトのクラスを指定する.
- RankedCompleterBase<> のコンストラクタに関数オブジェクトを渡す.
- キー補完用辞書の構築
例えば,dawgdic::Dictionary に格納するレコードが std::vector
class Comparer { public: explicit Comparer(const std::vector<int> &values) : values_(&values) {} bool operator()(const dawgdic::ValueType &lhs, const dawgdic::ValueType &rhs) const { return (*values_)[lhs] < (*values_)[rhs]; } private: const std::vector<int> *values_; };
もっと良い方法があると思うのですが,後付けということもあり,こんな風になってしまいました.
# そして,ドキュメントの更新が追いついていません.