From: Kazuhiro Nishiyama <nishiyama / mx1.tiki.ne.jp> Subject: [ruby-list:19933] [book] Date: Mon, 27 Dec 1999 23:59:14 +0900 Message-ID: <38677EBA3C.032CNISHIYAMA / mx1.tiki.ne.jp> nishiyama> p.230 nishiyama> C++の例が変だと思います。 nishiyama> ほとんど変更せずに直すならこんな感じだと思います。 nishiyama> コンパイルできるように前後もつけてみました。 おいらも変だと思ったんだけど、 そもそも、今のC++だったら、 //Stroustrup pp. 54-55 list<Entry> phone_book; void print_entry(const string& s) { typedef list<Entry>::const_iterator LI; for(LI i = phone_book.begin();i != phone_book.end(); ++i){ Entry& e = *i; if(s == e.name) cout<< e.name << ' ' << e.number << '\n'; } } というような書き方になるそうな。 Ruby本p.230を変更するなら、 #include<list> // ... list<Item> alist; for(list<Item>::iterator p = alist.begin(); p != alist.end(); ++p){ Item& item=*p; //各要素に対する処理 } くらいの雰囲気ですね。Itemの定義があればこれで コンパイルできるでしょう。(未確認) ちなみに"The C++ Programing Languae third edition"の indexにはcursorという言葉は出てきません。 あと、Ruby本はもうちょっとindexが充実すると さらに良くなると思います。 たとえば、C++ -> 230がないし、 cursor, iteratorはどちらもindexにのっていない。 イテレータはあるけどカーソルはない。