助田です.
In [ruby-list:13604] Re: iterator for Dummies( was Re: Ruby anywhere )

>  こういうのが標準であるんですか。たいぶ昔に C++ を勉強
>しただけなので知りませんでした。
STL(Standard Template Library) とかいう奴です.その名の通り
C++ の標準ライブラリになりました.

>>     vector<int>::iterator i; //i がカーソル?
>>     for(i=ary.begin(); i!=ary.end(); i++) {
>>         output(*i);
>>     }

>>  begin,end,++ の実装がカーソルの中に隠蔽されているわけ
>>ですね。
えーと,
++ はカーソル(vector<int>::iterator)で実装されてますが
begin() と end() は ary(vector<int>)側でイテレータを返すように
実装されていると思います.(STLの中身読んでませんのでよく知
りません.詳しい方フォローお願いします.)
カーソルで実装されているのは,この例でいけば ++,!=,* です.

>    for(i=ary.begin(), j=ary2.begin; i!=ary.end(); i++,j++) {
>        *i と *j を比較する
>    }
>みたいなことですかね。
そうです.

--------------------------------------------
助田雅紀(masaki.suketa / systemplaza.co.jp)
--------------------------------------------