タグ

ブックマーク / s-yata.hatenadiary.org (1)

  • 世の中には二種類の文字列がある… - やた@はてな日記

    今回の内容は,0 を終端とする文字列と,長さを別に持つ文字列の扱いに関する小ネタです. 検索用のインタフェースを用意するとき,どちらか一方を選択するのであれば,後者にすると思います.しかし,できれば前者も提供したいと思うのが人情というものでしょう. という理由から,marisa-trie では,どちらも使えるようになっています.とはいえ,別々に実装するのは甚だ面倒です.検索用の関数は lookup(), find() 系列, predict() 系列と大量にあり,ほとんど同じになるものを別々に実装するなんて正気の沙汰ではありません.以降の修正でどちらか一方だけ直し忘れたなんてのも,実にありそうな話です. シンプルな対策は,0 を終端とする文字列を受け取ったとき,まず長さを求めてやるというものです.しかし,長い文字列が与えられる可能性がある場合,この手は危険です.100MB くらいのテキスト

    世の中には二種類の文字列がある… - やた@はてな日記
    benrista
    benrista 2011/02/01
  • 1