2004年10月06日 水曜日
今更ながらSTLをお勉強
某MLの影響でしばらく忘れ去っていたC++のStandard TemplateLibrary(間違っても某社の中間管理職のことではない。)のお勉強などを。以前C++を触っていた頃は、templateの動作がおかしかった(というか、仕様の通りに動作するようなコンパイラの実装系はなかったのね)ことと、STLって便利なコレクション系データのライブラリなのねと言う誤解があったことで、なぁなぁなお勉強になっていたのでした。
今日久しぶりにC++をSTLを使おうと思って、7年くらい前に購入していたεπιστημηさんの「Standard Template Library プログラミング」を再読することにした。(今じゃWebで読めます。) これまで根本的な誤解をしていたような気がするのだが、STLの肝 はループを抽象化したAlgorithmなんですね。(今更気がついたのか) Collectionへのアクセスはポインタを抽象化しているIteratorを、ループのカスタマイズをFunction Objectで行うのですね。いやぁ疑問が氷解というか、年食うとなんだか昔分からなかったことが、さくっと分かるようになるもんですね。(まぁ実際にプログラミングに生かせるかどうかわからんが。) とりあえず、凄く勉強になっています。(というか、勉強しなさい、コードを書きなさいと言うことなんでしょう…)