http://yoshiori.org/blog/2006/12/javaiterator.php
http://d.hatena.ne.jp/t_yano/20070128/1170006946


またしてもIterator。つーか、一年前の話を蒸し返す俺って一体。


Iteratorって概念はSTLで初めて知ったんだ。初めは意味が分からなかったけど、Javaで使ってるうちになんとなく概要は掴めたと思う。
で、よくよく考えるとSTLIteratorってすごく使いにくい。むしろfor + getでいいんじゃねーの? って思ってしまう。
STLIteratorはstd::vector::iteratorとかstd::list::iteratorって感じになってて、いちいちどのクラスのIteratorであるかを書かなきゃいけない。
なんていうか、これじゃIteratorにする意味ないんじゃないかな、と。vectorがsetとかに変更になったら、いちいちどのコンテナのIteratorって書き換えなきゃならん。
しかもループの終了条件はend()メンバ任せ。Iterator単独ではループが終わらない。コンテナに依存せずに値が返せるのがIteratorのはずなのに、なんでIterator単独じゃループが終われないんだろう。とても不思議。


この実装が効率的なのかなぁ? STL的に。