悩めるSEの雑記です

日々思いつくがままです

iteratorクラス、そしてall_of()を実装してみる

昨日作成したvectorを使うためにiteratorクラスも実装してみました。

 

といってもvector::begin() / end()、あとはiteratorからの値取得や比較だけ。ループでvectorの要素を捜査できるのを確認しました!

 

 

サラッと書きましたけれど、実際は結構苦労しました。実装としては単純に行っているのでとても簡単なものです。しかし・・・参照やインスタンス絡みでやらかしていまして・・・自動変数を参照返ししてて・・・

 

その後は<algorithm>の方も、と思い、シンプルはall_of()で実装してみました。今回は全て自分で仕様を決めるので問題ないのですが、std名前空間のものを使う場合、それらが要求するI/Fを把握しておく必要がありますよね。Microsoftのサイトその他を見ても、具体的にどこまで・どんなふうに実装しておかないとダメなのかが掴めませんでした。

 

昔、C++をメインで使っていた時期の終盤は、結構STL使っていました。当時、そんなに苦戦した覚えはありません。「STL―標準テンプレートライブラリによるC++プログラミング」(初版)を片手に作業していた覚えがあります。2001年に第二版が翻訳されていますね・・・また読んだら使えるようになるのでしょうか。

 

当時、自分以外にSTLを使っている人は居ませんでした。まあ、そういっても社員自体が少なかったので当然なのかもしれませんが。この考え方に馴染むと、色々使えるところがあった記憶です。現代のプロジェクトでは、どの程度STLは利用されているのでしょう?とても気になります。