気づいたらid:odzさんからTBもらってたよ!
しかも、Suffix ArrayをHDD上のファイルに適用する段階でstringやめてiterator使おうと思ってたのに、id:odzさんにサクっと作られちゃったよ!
真のSTLプログラマは、まず普通のコード書いてからそれをtemplateにするんじゃなくて、最初からtemplate書けるんだなぁ。尊敬する。template系のコンパイルエラーもすらすら読めるのか、そもそも最初からコンパイルエラー出さないのか・・・。
std::lexicographical_compare って案外マイナーかもしれない。
Effective STL読み直したら、ちゃんと解説されてました。「STLで2番目に長い名前のアルゴリズム」って。Effective STLを100回読み直して出直します。
あぁ、つづりを覚えられる気がしない・・・。やっぱVisual C++のintellisense必要かなぁ。
あと、しょうもない感想としては、id:odzさんもやっぱりclassよりstruct使うのね。
class宣言の前半にpublicなメンバを書くスタイルの僕としては、メンバの9割がprivateだとしてもデフォルトはpublicであって欲しいので、滅多にclassは使わない。
Boost には transform_iterator というのがあるので、それを使うという手もあり。
これが欲しかったんだよ!やっぱり本気でSTLを使うにはboostは必須だね。
でも、せっかく自分でiterator作りかけたんで、iteratorの要件を理解するために一回はboost使わずにiterator作ってみます。